Kas*_*sma 2 c# security wcf web-services windows-authentication
我们编写了一个部署在IIS上的WCF服务.我们选择了集成Windows身份验证 在这种情况下不能使用服务,但如果我们可以将IIS虚拟目录的身份验证方法设置为WCF服务的"匿名",则错误将消失.但我们的WCF服务不接受"匿名".我们必须使用集成Windows身份验证来验证客户端.任何人都知道如何解决这个问题?
提前致谢,
阿希什
小智 5
你必须做一些事情:
创建以下绑定配置:
<basicHttpBinding>
<binding name="Binding1">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
Run Code Online (Sandbox Code Playgroud)将以上配置应用于您的服务和mex:
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="IService">
</endpoint>
<endpoint address="mex" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="IMetadataExchange">
</endpoint>
Run Code Online (Sandbox Code Playgroud)
创建客户端并使用NetworkCredential传递凭据:
ServiceReference.MyClient proxy = new ServiceReference.MyClient();
proxy.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("MACHINENAME\\USERACCOUNT", "passwrd");
proxy.YourServiceOperation();
Run Code Online (Sandbox Code Playgroud)还有其他方法可以单独设置用户名和密码,但它在.Net 4.0中不起作用.USERACCOUNT是您的WCF主机加入的域帐户或LDAP.如果服务器未加入域,则通过运行"lusrmgr.msc"在本地创建帐户