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