2009-07-29 123 views
0

我想在使用Web服务的同时验证客户端。我在客户端看到一个名为ClientCredential的属性,我们可以在其中传递用户名和密码。如何将此信息传递给我的WCF Web服务,以及如何验证用户标识和密码?如何在使用WCF Web服务时验证客户端?

回答

0

如果你想使用ClientCredential与用户名/密码,您需要配置的是,在客户端的app.config像这样的 - 无论是使用传输或邮件的安全性,无论你的作品,然后指定

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="UserNameSecurity"> 
      <security mode="Message"> 
      <message clientCredentialType="UserName"/> 
      </security> 
     </binding> 
     </basicHttpBinding> 

,然后你需要在你的终端使用此绑定配置“UserNameSecurity”在客户端上:

<client> 
     <endpoint address="http://localhost:8888/MyService" 
       binding="basicHttpBinding" bindingConfiguration="UserNameSecurity" 
       contract="IMyService" /> 

在服务器端,您需要定义如何验证用户 - 无论是使用的是Windows(活动目录域)或使用AS P.NET会员供应商(及其关联的用户数据库):

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="Default"> 
      <serviceCredentials> 
      <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

在这种情况下,您的用户名/密码将针对ASP.NET成员资格数据库进行检查。

如果这全部都放在企业内部的Intranet上,我宁愿使用集成的Windows安全功能 - 它更易于安装和使用,并且更加可靠和安全。但它只能在公司内部,在企业防火墙内部运作。

Marc