提问人:Ben Phillips 提问时间:10/13/2023 最后编辑:marc_sBen Phillips 更新时间:10/13/2023 访问量:88
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
问:
我们在一台本地服务器上有一个 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 应用程序本身中允许模拟,但这会导致发生错误
任何帮助将不胜感激
答: 暂无答案
评论
<identity impersonate="true" />