2011-07-23 12 views
1

Silverlightアプリケーション(VS2010 Silverlightビジネステンプレートに付属)で基本ASP.NET認証ドメインサービスを実行しています。SilverlightでASP.NET AuthとDomainServiceを使用してWCFサービスをセキュリティ保護する

これは、標準のWCFサービス(IISの同じアプリケーションでホストされている)によって公開されているメソッドを保護するために、どのようにして認証を使用できますか?

答えて

0

ここからは、Security for WCF RIA Servicesとお勧めします。あなたが探しているのは、RequiresAuthentication属性です。

[RequiresAuthentication] 
public Foo SomeMethodCall(object parameter1) 
{ 
    return service.GetResult(parameter1) 
} 
+0

私はあなたが非常に私のだとは思いません質問。私は、認証を提供するドメインサービスを持っていますが、私が安全にしたい通常のWCF操作です。ユーザーに承認が与えられると、チケットを使用して標準WCFメソッドを呼び出すことができます(DomainServiceメソッドではありません)。 – MalcomTucker

+0

私は少し違ったように見えます。しかし、情報を投稿していただきありがとうございます。かなり面白いですね。 – Danexxtone

+0

実際にそれは非常に簡単です、そして*あなたはそれを行う方法を知っていれば*ちょうど動作*:D – MalcomTucker

1

オクラホマので、これはあなたがそれを行う方法で、標準のWCFサービスは、属性のカップルを必要とし、あなたがThread.CurrentPrincipalを割り当てる必要があります:

[ServiceContract(Namespace = "")] 
[SilverlightFaultBehavior] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class Service1 
{ 
    public Service1() 
    { 
     Thread.CurrentPrincipal = HttpContext.Current.User; 
    } 

    [OperationContract] 
    [PrincipalPermission(SecurityAction.Demand, Role = "Registered Users")] 
    public string DoSomeWork() 
    { 
     return "working"; 
    } 
} 
関連する問題