HTTP および ASP.NET 開発サーバーを介してカスタム ユーザー名バリデーターを使用するように WCF サービスを構成しようとしています。以下はserviceModelの一部です...
<basicHttpBinding>
<binding name="Authentication" >
<security mode="TransportCredentialOnly" >
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
<service behaviorConfiguration="ApiBehavior" name="CriticalWatch.AuthenticationAPI.AuthenticationAPI">
<endpoint address="/" binding="basicHttpBinding" bindingConfiguration="AuthenticationBinding" name="Authentication" contract="CriticalWatch.AuthenticationAPI.IAuthenticationAPI" />
</service>
次に、バリデーターの動作があります...
<serviceBehaviors>
<behavior name="ApiBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Service.CustomUserNameValidator, MyService" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
私の CustomUserNameValidator は UserNamePasswordValidator を継承しています。バリデータ クラスはインスタンス化されますが、Validate メソッドは呼び出されません。さらに、クライアントはユーザー名とパスワードを渡さずにメソッドを呼び出すことができます。
私は何が欠けていますか?
現時点では、HTTPS を必要としないソリューションが必要です。メッセージで渡されたユーザー名とパスワードに依存したい。