在WCF服务中使用ASP.NET成员资格提供程序验证

时间:2010-04-10 22:52:00

标签: asp.net wcf asp.net-membership wcf-security

是否有办法使用会员提供商提供的相同用户名和密码进行WCF服务身份验证?如果是这样,它支持哪种绑定?我需要从当前调用该服务的用户中提取配置文件变量。谢谢你的帮助。

1 个答案:

答案 0 :(得分:22)

基本上,任何接受用户名/密码作为邮件安全的客户端凭据的绑定都可以配置为使用ASP.NET成员资格提供程序。

how to use the ASP.NET Membership provider in WCF上查看此MSDN文档 - 您需要为“UserName”类型的客户端凭据配置绑定

<bindings>
  <wsHttpBinding>
  <!-- Set up a binding that uses UserName as the client credential type -->
    <binding name="MembershipBinding">
      <security mode ="Message">
        <message clientCredentialType ="UserName"/>
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

以及使用ASP.NET Membership进行用户身份验证的服务:

<serviceBehaviors>
  <behavior name="AspNetMembership">
     <serviceCredentials>
        <userNameAuthentication 
             userNamePasswordValidationMode ="MembershipProvider" 
             membershipProviderName ="SqlMembershipProvider"/>
     </serviceCredentials>
  </behavior>
</serviceBehaviors>

当然,您必须在配置时将此服务行为应用于您的服务!

<services>
   <service name="YourService" behaviorConfiguration="AspNetMembership">
   ....
   </service>
</services>

BasicHttpBinding,wsHttpBinding,netTcpBinding支持UserName客户端凭证类型 - 几乎所有常见的嫌疑人。