2013-06-27 89 views
1

我希望为Web服务提供安全性。我最初使用BasicHttpBinding与传输安全(SSL)和消息安全性(传递用户名和密码为自定义用户名密码验证)...WCF安全 - 使用用户名密码的传输级别安全性

但Web服务的消费者表示,他们不能添加标头的SOAP消息安全细节..并表示他们希望通过该服务的沟通渠道。

是否可以使用WCF进行传输安全性自定义用户验证?我无法得到它的工作:(

有什么建议?

感谢 尼尔

回答

3

我想你的消费者所要求的基本身份验证,也就是说,在认证令牌的HTTP授权通过头,而不是在SOAP安全头的凭据的保密将仅由传输(HTTPS)来提供

此的结合配置是:。

<basicHttpBinding> 
    <binding name="HTTPSwithBasicAuthentication"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
</basicHttpBinding> 

在客户端,你设置凭据这样

serviceClient.ClientCredentials.UserName.UserName = "username"; 
serviceClient.ClientCredentials.UserName.Password = "password"; 

假设您的服务托管在IIS,请记住要启用基本身份验证在IIS配置。

要执行用户的实际授权,您可以实施自定义ServiceAuthorizationManager以包含您的授权逻辑。有很多关于如何在网络上完成最后一部分的例子。

或者,您可以在标准的ASP.Net成员资格提供程序中进行配置,如果这适合您的应用程序。

http://msdn.microsoft.com/en-us/library/bb398990(VS.100).aspx