ASP.NET MVC Webアプリケーションの内部でIIS 7.0/7.5でホストされているWCFサービスを持っています(ServiceHost
ディレクティブの.svcファイルを使用)。あなたは、私がトランスポート・セキュリティのためにSSLを使用しています参照して、ASP.NETメンバシッププロバイダに対してユーザー名とパスワードで認証することができたようASP.NETメンバーシップ、ロール、およびプロファイルを使用したWCF認証
<services>
<service name="MyServiceLib.MyService">
<endpoint address="" binding="wsHttpBinding"
bindingConfiguration="wsHttpBindingConfig"
contract="MyServiceLib.IMyService" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="wsHttpBindingConfig">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="AspNetSqlMembershipProvider"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
:私の構成のセキュリティ設定は、このように見ています。これはこれまでのところうまく動作します。
しかし、私は認証されたユーザーだけではなくではなく、特定の役割であり、そのプロファイルに設定された特定の値を持っている人のユーザーに、このサービスへのアクセスを制限したいです。 (私は、WebアプリケーションでSqlProfileProviderを使用しています。すべてのユーザーに、特定の値が割り当てられたプロファイルがあります)。
これは構成設定で可能ですか?そうでない場合は、サービス側でカスタム認証を作成して、着信メッセージからユーザーとパスワードを取得し、メンバーシップとロールをチェックしてプロファイルストアからプロファイルを引き出すことができますか?これどうやってするの?
このロールサービスが役立つかどうかはわかりません。説明:* "このトピックでは、Windows Communication Foundation(WCF)を使用するクライアントで使用できるようにするために、Webサーバー上でASP.NET役割サービスを構成する方法を示します。" *ただし、役割を利用できるようにしたくないクライアントと私はまた、クライアントがWCFを使用することを保証することはできません。私は、受信したユーザー名が特定の役割にあるかどうか、純粋にサーバー側で確認したいだけです。 – Slauma
@Slauma:[aspNetCompatibilityMode](http://blogs.msdn.com/b/wenlong/archive/2006/01/23/516041.aspx)を有効にする方法はありますか? –
私は思うに、WCFの役割サービスは、単に「aspNetCompatibilityMode」の有無にかかわらず、私が必要とする以上の目的を持っています。しかし、カスタム検証は実際に実装するのが簡単で、うまく動作します。このヒントをありがとう! – Slauma