我有一个使用Windows窗体身份验证的ASP.NET(.NET 4.0)应用程序。这对Active Directory进行身份验证,工作得很好。从ASP.NET Web应用程序到ASP.NET Web服务到SQL Server的验证
此Web应用程序在同一台服务器上调用ASP.NET Web服务(.NET 4.0)。应用程序和服务都在IIS 6上运行。
Web服务使用“Integrated Security = SSPI”作为连接字符串的一部分调用同一个域中的SQL Server 2005数据库。
我希望Web服务和数据库连接使用Web应用程序的登录用户的凭据。
我试过几十个网站的设置的几十个组合,但没有任何工作。我在第二天,没有到任何地方。
这甚至可能吗?
在我的最新尝试,我加入了Web应用程序的代码调用Web服务之前:
svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
但里面的服务,User.Identity.Name返回谁开始在网络用户的价值服务器。
查看http://support.microsoft.com/kb/306158,并尝试“模拟验证代码中的用户”中的代码,看看它是否适用于您。 – 2012-03-21 15:15:21
@NickBork:该方法需要给ASP.NET“作为操作系统的一部分运行”权限,甚至使它作为SYSTEM(NT的根名称)运行。不知道这一切是否健康。 – Andomar 2012-03-21 15:19:16