Я пытаюсь защитить службу WCF с помощью https, имени пользователя и пароля. Я использую режим безопасности TransportWithMessageCredentials и wsHttpBinding.
Прямо сейчас у меня проблемы с пользовательским UserNamePasswordValidator, когда я сравниваю жестко закодированные значения, подобные этому
if (userName == "user" && password == "pass")
return;
все работает нормально, но когда я пытаюсь получить значения из базы данных, я получаю сообщение об ошибке
Необеспеченный или неправильно закрепленный
вина была получена от другого
вечеринка. Смотрите внутреннюю FaultException
для кода неисправности и детализации
Вот мой раздел web.config
<bindings>
<wsHttpBinding>
<binding name="TestAuthConf" maxReceivedMessageSize="65536">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
<readerQuotas maxArrayLength="65536" maxBytesPerRead="65536" maxStringContentLength="65536"/>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="TestAuthWCFService.TestAuthBehavior" name="TestAuthLibrary.App_Code.TestAuth">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="TestAuthConf" contract="TestAuthLibrary.App_Code.ITestAuth">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpsBinding" contract="TestAuthLibrary.App_Code.ITestAuth"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="TestAuthWCFService.TestAuthBehavior">
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="App_Code.CustomUserNameValidator, App_Code.CustomUserNameValidator"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Я использую IIS7, самогенерируемый цифровой сертификат и настроил SSL для приема клиентских сертификатов ...
Любая помощь будет оценена ...