WCF服务询问登录名和密码

时间:2011-12-07 03:55:41

标签: c# wcf

美好的一天

我有以下问题:如何在用户使用服务之前更改web.config以请求凭据?

提前致谢

2 个答案:

答案 0 :(得分:3)

您必须为您的目的执行基本身份验证,并禁用IIS中的所有身份验证(托管wcf的位置),但基本身份验证除外

默认启用匿名身份验证,这就是您访问服务时不会询问的原因。

您还需要按照以下

进行web.config设置
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="myHttpGetBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="yourserviceaddress"
binding="basicHttpBinding"
bindingConfiguration="myHttpGetBinding"
contract="BasicAuthTest.MyServiceContract"
name="myBasicEndpoint"/>
</client>
</system.serviceModel>

请参阅以下链接

http://www.codeproject.com/KB/WCF/WCFBasicHttpBinding.aspx

http://www.codeproject.com/KB/WCF/BasicAuthWCFRest.aspx

http://msdn.microsoft.com/en-us/library/ee817643.aspx

答案 1 :(得分:1)

由于您的服务是在IIS中托管的,因此您应该查看this link中提供的指南,特别是有关身份验证的部分。

我相信除非您在IIS中启用了Windows身份验证,这将自动提示用户,否则您的应用程序将负责收集用户的凭据。