在 SoapUI 上进行用户名身份验证测试的 WCF WebService
Posted
技术标签:
【中文标题】在 SoapUI 上进行用户名身份验证测试的 WCF WebService【英文标题】:WCF WebService with UserName Authentication test on SoapUI 【发布时间】:2012-11-01 19:35:16 【问题描述】:我有带有用户名身份验证的 WCF WebService,但无法使用 SoapUI 对其进行测试。
这里有 web.config:
<behaviors>
<serviceBehaviors>
<behavior name="FHPBusinessLogicService.ServiceBehavior">
<serviceCredentials type="FHPBusinessLogicService.Security.PasswordServiceCredentials, FHPBusinessLogicService">
<userNameAuthentication userNamePasswordValidationMode="Custom" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceAuthorization principalPermissionMode="Custom" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="ServiceConf" maxReceivedMessageSize="65536" >
<readerQuotas maxStringContentLength="65536" maxArrayLength="65536" maxBytesPerRead="65536" />
<security mode="TransportWithMessageCredential" >
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
在我收到的 SoapUI 上:
验证消息的安全性时出错
我正在本地机器上测试它,本地 IIS 7 服务器。
有什么建议吗?
【问题讨论】:
【参考方案1】:在 SoapUI 的“请求属性”中的“Wss-密码类型”部分中,只需选择选项“PasswordText”。这样就可以了
【讨论】:
【参考方案2】:我认为您需要将 WS-Security 配置添加到您的请求中。 阅读此http://www.soapui.org/SOAP-and-WSDL/applying-ws-security.html
并查看“用户名”下的部分。然后在您的soapUI 测试套件中,确保添加您刚刚创建的ws-security conf。这对我有用。
【讨论】:
我不知道什么是“密钥库文件”。为什么这篇文章假设我这样做了,并且我有一个可以使用的? 编辑我现在可以看到页面顶部有一个链接涵盖了这个。【参考方案3】:另一个可能导致此错误的“愚蠢”事情是您将Auth
中的Username
字段留空......即使您的Service
不关心Username
,您仍然需要在那里提供一些价值。
【讨论】:
以上是关于在 SoapUI 上进行用户名身份验证测试的 WCF WebService的主要内容,如果未能解决你的问题,请参考以下文章
使用SoapUI测试windows身份验证的webservice
在 C# Web api 上进行用户身份验证的最佳实践是啥?