繁体   English   中英

使用Windows身份验证登录到SQL Server

[英]using windows authentication to log in to a sql server

我在Intranet上设置了一个Web应用程序,该应用程序使用Windows身份验证(成功),该应用程序试图链接到在单独服务器上运行的数据库。

但是,我遇到的问题是,当我尝试使用受信任的连接登录sql服务器时,应用程序没有通过该网站传递用户的域名/用户名,而是传递了NT AUTHORITY \\ ANONYMOUS LOGON。

我通过让网站显示一个问候语来验证身份验证是否有效,该问候语在我登录到该网站时可以正确识别我的用户名,因此这不是匿名访问问题。 尽管在应用程序的web.config文件中进行了设置,但我认为这是一个模拟问题。

奇怪的是,当我在开发机器上甚至通过生产服务器上的远程桌面在本地运行Web应用程序时,它都能正常运行。 我不确定这是怎么回事。

最后,我正在运行IIS 7.5,Windows Server 2008 R2和SQL Server 2008

这称为约束委派 基本上,这意味着默认情况下无法将模拟的上下文委派给网络上的资源进行身份验证。 如果没有适当的委派,任何人都可以在企业中创建一个网站并公开一些良性应用程序。 但是在下面,一旦用户对网站进行了身份验证,它就可以冒充该用户执行任何操作 ,例如阅读他的邮件,代其出售股票,为网站开发人员加薪。 这就是为什么在模拟用户的计算机外部不信任模拟上下文。

为了允许模拟的上下文连接到远程资源(例如文件共享或数据库服务器),域管理员必须显式设置约束委派,这允许模拟的上下文使用一个特定资源进行身份验证。

有许多文章描述了问题和解决方案:

如果您的Web应用程序尝试访问数据库,它将使用运行IIS w3wp.exe进程的帐户(默认情况下为networkservice)来执行此操作。 如果要更改此设置,则需要使用模拟。

该文档对其进行了很好的解释。

正如该文档还根据您的应用程序说明的那样,您可能希望使用受信任的子系统而不是模拟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM