【发布时间】:2023-03-11 23:30:01
【问题描述】:
我有一个使用 Windows 窗体身份验证的 ASP.NET (.NET 4.0) 应用程序。这会针对 Active Directory 进行身份验证并且工作正常。
此 Web 应用程序调用同一服务器上的 ASP.NET Web 服务 (.NET 4.0)。应用和服务都在 IIS 6 上运行。
Web 服务使用“Integrated Security=SSPI”作为连接字符串的一部分调用同一域中的 SQL Server 2005 数据库。
我希望网络服务和数据库连接使用网络应用的登录用户的凭据。
我已经尝试了几十个网站的几十个设置组合,但没有任何效果。我已经是第二天了,还没有到任何地方。
这可能吗?
在我最近的尝试中,我在调用网络服务之前在网络应用中添加了这段代码:
svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
但在服务内部,User.Identity.Name 返回启动 Web 服务器的用户的值。
【问题讨论】:
-
查看 support.microsoft.com/kb/306158 并尝试“在代码中模拟身份验证用户”中的代码,看看它是否适合您。
-
@NickBork:该方法需要授予 ASP.NET“作为操作系统的一部分运行”特权,甚至使其作为 SYSTEM(根的 NT 名称)运行。不确定这是否一切正常.
标签: asp.net sql-server web-services authentication