IIS 中的 Blazor 托管使用系统帐户连接 SQL Server?如何冒充?



我发布了一个具有 Windows 身份验证到 IIS 的 Blazor(服务器端(应用程序。我禁用了"匿名身份验证"并启用了"Windows 身份验证"。

应用程序可以正确显示登录信息("您好,域\用户名!应用程序使用 Windows 集成模式连接到 SQL Server。

"ConnectionStrings": {
"MyDatabase": "Server=DBServer;Database=DB1;Trusted_Connection=True"
}

但是,它使用系统帐户(用于运行 IIS?(来连接 SQL Server。

用户"域\IISMachineName$"登录失败。

我尝试为 IIS 站点启用"ASP.NET 模拟",但它收到 500.24 错误。

HTTP 错误 500.24 - 内部服务器错误

检测到在集成托管管道模式下不应用的 ASP.NET 设置。

最可能的原因:

• system.web/identity@impersonate 设置为 true。

这取决于您的托管和 SQL 服务器的位置,正如您所说的在 IIS 中托管的那样,它像 IIS 中托管的任何其他 Web 服务一样占用应用程序池。

如果 SQL Server 位于同一服务器上,则可以分配应用程序池。 可以将应用程序池作为登录名和用户添加到 SQL 数据库。

CREATE LOGIN [IIS APPPOOLMyBlazorAppPool] FROM WINDOWS;
CREATE USER MyBlazorAppPool FOR LOGIN [IIS APPPOOLMyBlazorAppPool];

在其他计算机上,只需以用户身份创建托管 blazor 应用的计算机即可。

CREATE LOGIN [computername$] FROM WINDOWS;

相关内容

最新更新