私はIISでホストされているWCFサービスを持っています。自分のIAuthorizationPolicyを使用して、サーバー上のweb.configファイルで設定する必要があります。WCFでカスタムIAuthorizationPolicyを宣言的に実装する方法は?
namespace MyLib.WCF
{
public class CustomAuthorizationPolicy : IAuthorizationPolicy
{
public CustomAuthorizationPolicy()
{
this.Id = Guid.NewGuid().ToString();
}
public bool Evaluate(EvaluationContext evaluationContext, ref object state)
{
throw new ApplicationException("Testing custom auth");
}
...
}
}
そして、私のweb.configファイルで:
<service behaviorConfiguration="Behavior" name="MyService">
<endpoint address="" binding="wsHttpBinding" contract="IMyService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
<serviceBehaviors>
<behavior name="Behavior">
<serviceAuthorization principalPermissionMode="Custom">
<authorizationPolicies>
<add policyType="MyLib.WCF.CustomAuthorizationPolicy, MyLib.WCF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</authorizationPolicies>
</serviceAuthorization>
</behavior>
</serviceBehaviors>
しかし、私のCustomAuthorizationPolicy.Evaluate()メソッドは、発火決して私は私の認証ポリシーを持っています。私は何が欠けていますか?
大きな質問ですが、それは通常私を得る明白なものです!上記のコードスニペットにサービス設定を追加しましたが、あなたの質問に答えるために:1)私はbehaviorConfigurationを参照しています2)私はwsHttpBindingを使用していますが、セキュリティモードは設定されていませんなし? – MrDustpan
いいえ、実際には、wsHttpバインディングはWindows資格情報を使用するメッセージベースのセキュリティに既定されています。それは問題ではありません.... –