gpt4 book ai didi

具有自定义用户名密码身份验证问题的 WCF 服务

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:35 24 4
gpt4 key购买 nike

我正在尝试使用 https 和用户名和密码保护 WCF 服务。我正在使用 TransportWithMessageCredentials 安全模式和 wsHttpBinding。现在我在使用自定义 UserNamePasswordValidator 时遇到了问题,当我像这样比较硬编码值时

if (userName == "user" && password == "pass")
return;

一切正常,但是当我尝试从数据库中获取值时出现错误消息

An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail

这是我的 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 来接受客户端证书...

我们将不胜感激...

最佳答案

好消息:如果您的自定义用户名/密码验证器正在执行,则证书已经过验证,因此消除了很多可能性。

在我看来,从 WCF 的线程上下文中访问数据库时存在错误。在您的验证器中设置一个断点并单步执行。

关于具有自定义用户名密码身份验证问题的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5406240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com