Sql ASP.NET Windows身份验证-用户登录失败';NT授权/匿名登录';

Sql ASP.NET Windows身份验证-用户登录失败';NT授权/匿名登录';,sql,asp.net,iis,Sql,Asp.net,Iis,这是我的第一个web应用程序(ASP.NETMVC),我遇到了一些问题,希望有人能帮我解决。我正在尝试使Windows身份验证正常工作,但在将项目部署到IIS后,我一直遇到以下错误: 用户“NT授权\匿名登录”登录失败 SqlException(0x80131904):用户“NT授权\匿名登录”的登录失败 在过去的几天里,我对此做了大量的搜索,但我似乎无法找出我遗漏了什么。在Visual Studio中运行时,我没有收到此错误 在我的Web.config中,我有以下设置: <authent

这是我的第一个web应用程序(ASP.NETMVC),我遇到了一些问题,希望有人能帮我解决。我正在尝试使Windows身份验证正常工作,但在将项目部署到IIS后,我一直遇到以下错误:

用户“NT授权\匿名登录”登录失败

SqlException(0x80131904):用户“NT授权\匿名登录”的登录失败

在过去的几天里,我对此做了大量的搜索,但我似乎无法找出我遗漏了什么。在Visual Studio中运行时,我没有收到此错误

在我的Web.config中,我有以下设置:

<authentication mode="Windows" />
<identity impersonate="true"/>

有什么建议吗?谢谢大家

我们通常通过更改应用程序池标识以使用特定的服务帐户(与用户帐户相同,但pwd永不过期…)来处理此问题,并且我们允许该服务帐户通过在sql数据库上授予运行应用程序所需的最低特权(如读取)来连接sql server数据库,在用户数据库上写入和执行,在主数据库上读取


当然,还有其他方法可以做到这一点,但我们对此很满意,我们确实为每个环境使用了不同的服务帐户,例如服务appname dev、服务appname qa、服务appname-prod…。

我们通常通过更改应用程序池标识来使用特定的服务帐户来处理此问题(与用户帐户相同,但pwd永不过期…)我们允许该服务帐户连接到sql server数据库,方法是在sql数据库上提供运行应用程序所需的最低权限,如在用户数据库上读取、写入和执行,以及在主数据库上读取


当然,还有其他方法可以做到这一点,但我们对此很满意,我们确实为每个环境使用了不同的服务帐户,例如service appname dev、service appname qa、service-appname-prod…。

这是一个sql例外,应用程序池标识需要是一个访问db的帐户。您可以使用自己的user帐户。

这是一个sql例外,应用程序池标识需要是一个具有db访问权限的帐户。您可以使用自己的用户帐户进行测试。

不要使用模拟。这不起作用,会使一切复杂化。相反,请将应用程序池作为服务帐户运行(在AD中创建一个专用域帐户)然后将该帐户权限授予您的SQL Server。不要使用模拟。这样做不好,会使一切复杂化。相反,请将您的应用程序池作为服务帐户运行(在AD中创建了专用域帐户),然后将该帐户权限授予您的SQL Server。
Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FOO;Data Source=SERVER\\DB; Encrypt=true; Trusted_Connection=Yes; TrustServerCertificate=true;