如何在ASP.NET和WCF之间对用户进行身份验证?

Ash*_*Ash 5 asp.net wcf active-directory wcf-security

我们正在开发基于浏览器的Intranet应用程序.所有用户都有活动目录帐户,因此显而易见的选择是使用集成Windows身份验证.但是会有多个用户访问相同的客户端计算机,因此我们决定使用基于表单的身份验证(但针对AD进行身份验证).

在这种情况下,在我的ASP.NET应用程序(IIS)和WCF服务(另一台服务器IIS 7)之间进行身份验证的最佳方法是什么.我不想使用asp.Net兼容模式或证书.

我正在考虑创建另一个域帐户来验证ASP.NET和WCF.我还将有关当前ASP.NET用户的信息作为标头信息传递给WCF.这是正确的方法吗?以下代码将从ASP.NET调用以访问并获取每个服务方法.

 // Call WCF service from ASP.NET Application using a new domain account for each call.
 proxy.ClientCredentials.Windows.ClientCredential.Domain = "mydomain";
 ServiceReference.HelloWorldClient proxy = new ServiceReference.HelloWorldClient();
 proxy.ClientCredentials.Windows.ClientCredential.UserName = "new_domain_account";
 proxy.ClientCredentials.Windows.ClientCredential.Password = "password";
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来从ASP.NET验证WCF?

谢谢,阿什.

Hog*_*gan 0

嗯...如果您有 AD 并且他们使用凭据登录,那么他们在哪台计算机上并不重要,只需使用 AD 即可。如果他们使用同一台机器怎么办?

无论如何,微软在这里有很多关于这个问题的信息:

http://wcfsecurity.codeplex.com/wikipage?title=Application%20Scenarios&referringTitle=Home

一探究竟。