无法使用ASP.NET核心应用程序(IIS服务器)通过Windows身份验证连接到SQL Server

hc8w905p  于 2022-11-24  发布在  .NET
关注(0)|答案(1)|浏览(124)

我在将ASP.NET Core 3.1应用程序部署到IIS时遇到问题。
当我在appsettings.json文件中提供Windows凭据时,总是出现以下错误:
使用域\用户名$登录失败
我应该更新web.config中的连接字符串还是更新IIS管理器中的IIS服务器?
appsettings.json

{
    "AppSettings": {
        "Secret": "9HGXuFLr5PeSjhBBgvMM8CYCQkCcfFgWgQFQvX9M6ahsHC87ESH3cVajpnfTHEBJ"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Debug",
            "System": "Information",
            "Microsoft": "Information"
        }
    },
    "AllowedHosts": "*",
    "ConnectionStrings": {
        "L4LAuthentification_TEST01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4LAuthentification_TEST01;Integrated Security=True;",
        "L4Authentification_RECET01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4Authentification_RECET01;Integrated Security=True;",
        "DevInfoCDataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=DevInfoC;Integrated Security=True;",
        "InfocentreRecet01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=InfocentreRecet01;Integrated Security=True;",
        "L4LGestionFLux_TEST01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4LGestionFLux_TEST01;Integrated Security=True;",
        "L4GestionFlux_RECET01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4GestionFlux_RECET01;Integrated Security=True;",
        "L4EdiFluxInDataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4EdiFluxIn;Integrated Security=True;",
    }
}
smdnsysy

smdnsysy1#

无论何时使用“Integrated Security=True”,您都需要知道您的代码正在运行哪个标识(也称为主体)。并且该IIidentity(在IIS中运行您的进程)必须具有SqlServer的凭据。-
最有可能的情况是,您的IIS以“DOMAIN\USERNAME$"的身份运行您的应用程序。并且(相应地)帐户DOMAIN\USERNAME$没有访问您的ms-sql-server的凭据。
您很可能会创建一个更加独立的“服务帐户”,用于运行IIS应用程序,并且该帐户对Ms-Sql-Server具有权限。

相关问题