我有一个使用Windows身份验证与WCF对话的WPF客户端。
当人们访问域名时,它可以通过凭据,但不能通过互联网使用客户端
ClientBase.Credentials = OnNetwork ? CredentialCache.DefaultCredentials : new NetworkCredential(tbxUsername.Text, pbxPassword.SecurePassword);
这样做的正确方法是什么?
答案 0 :(得分:1)
您可以使用ADFS 2.0 + Windows Identity Foundation。请参阅:http://blogs.msdn.com/b/appfabriccat/archive/2010/12/14/ad-fs-2-0-to-secure-wcf-and-workflow-services-hosted-in-windows-server-appfabric.aspx
该文章讨论了在Windows Azure中托管的WCF服务,但您应该能够应用相同的主要想法。
答案 1 :(得分:1)
我认为非常合适的解决方案是@Jeff指出的Windows Identity Foundation。
Microsoft自己NTLM身份验证已弃用(请参阅MSDN上的this article)。此外,NTLMSSP来自Windows Server 2008(及更高版本)disabled by default。
无论如何要使用NTLM,你必须在IIS主机上启用IWA,开始阅读Microsoft Technet上的这篇文章以了解如何(以及{7}}对于IIS 7而言。
请查看MSDN以获取更多详细信息,但作为快速概述,您可以查看这些文章(按重要性顺序):