在 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 上进行用户身份验证的最佳实践是啥?

Laravel - 无法使用用户名在 SMTP 服务器上进行身份验证

Firebase仅在某些设备上进行身份验证?

JWT 在未经身份验证的端点上进行 CSRF 保护?

有没有办法让一个人在跨子域的 firebase 上进行身份验证