Silverlightアプリケーション(VS2010 Silverlightビジネステンプレートに付属)で基本ASP.NET認証ドメインサービスを実行しています。SilverlightでASP.NET AuthとDomainServiceを使用してWCFサービスをセキュリティ保護する
これは、標準のWCFサービス(IISの同じアプリケーションでホストされている)によって公開されているメソッドを保護するために、どのようにして認証を使用できますか?
Silverlightアプリケーション(VS2010 Silverlightビジネステンプレートに付属)で基本ASP.NET認証ドメインサービスを実行しています。SilverlightでASP.NET AuthとDomainServiceを使用してWCFサービスをセキュリティ保護する
これは、標準のWCFサービス(IISの同じアプリケーションでホストされている)によって公開されているメソッドを保護するために、どのようにして認証を使用できますか?
ここからは、Security for WCF RIA Servicesとお勧めします。あなたが探しているのは、RequiresAuthentication属性です。
[RequiresAuthentication]
public Foo SomeMethodCall(object parameter1)
{
return service.GetResult(parameter1)
}
オクラホマので、これはあなたがそれを行う方法で、標準の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";
}
}
私はあなたが非常に私のだとは思いません質問。私は、認証を提供するドメインサービスを持っていますが、私が安全にしたい通常のWCF操作です。ユーザーに承認が与えられると、チケットを使用して標準WCFメソッドを呼び出すことができます(DomainServiceメソッドではありません)。 – MalcomTucker
私は少し違ったように見えます。しかし、情報を投稿していただきありがとうございます。かなり面白いですね。 – Danexxtone
実際にそれは非常に簡単です、そして*あなたはそれを行う方法を知っていれば*ちょうど動作*:D – MalcomTucker