Windows 身份验证未从 IIS(站点上 2 个,但单独的服务器)传递到 SQL Server,用于 MVC Web 应用 ASP.NET

Windows authentication not being passed to SQL Server from IIS (2x on site but separate servers) for ASP.NET MVC web app

提问人:Ben Phillips 提问时间:10/13/2023 最后编辑:marc_sBen Phillips 更新时间:10/13/2023 访问量:88

问:

我们在一台本地服务器上有一个 SQL Server,在另一台本地服务器上有 IIS。我在带有 IIS 的服务器上安装了基本的 ASP.NET MVC Web 应用程序。

当此应用程序在 VS 中本地运行时,它会显示用户的 Windows 登录名(尽管您必须登录,但它不会自动通过 - 有关如何避免这种情况的任何想法都会有所帮助),当用户对 SQL Server 进行 CRUD 更改时,它会使用他们的用户登录名执行此操作。这是应用的预期行为

但是,当应用托管在 IIS 中时,它仍然会识别用户已登录(在右上角显示其 Windows 用户名),但 SQL Server 全部由服务器自己的 SQL Server 登录名 () 操作,而不是由用户登录名执行操作DOMAIN\SERVERNAME$

我将应用程序池标识设置为 。IIS 身份验证设置为“Windows 凭据 = 已启用”,并禁用所有其他选项。Windows 凭据扩展保护已关闭,并勾选内核ApplicationPoolName

我尝试了这些设置的许多变体,这是我取得的最好的成就。诚然,这是我第一次尝试这种事情,尽管我精通 SQL Server。连接字符串显然有效,只是 IIS 似乎没有将当前用户窗口登录名传递/委托给 SQL,而是传递自己的登录名

我已经阅读并应用了许多解决方案,这些解决方案对他们有用,但没有一个对我有用。我尝试在 asp.net 应用程序本身中允许模拟,但这会导致发生错误

任何帮助将不胜感激

sql-server asp.net-mvc IIS

评论

0赞 jarlh 10/13/2023
SQL是一种语言,有几十种产品支持:en.wikipedia.org/wiki/...
0赞 siggemannen 10/13/2023
请参阅 stackoverflow.com/questions/21891605/... 。我认为是门票<identity impersonate="true" />
0赞 Lex Li 10/14/2023
请域管理员指导您完成 Kerberos 委派配置和故障排除。这不是一件简单的事情。
0赞 samwu 10/16/2023
根据您的描述很难重现您的问题,我建议您通过以下方式打开案例:support.microsoft.com

答: 暂无答案