【发布时间】:2019-09-15 11:54:40
【问题描述】:
这适用于经典 ASP 网站:
sConnString = "Provider=SQLOLEDB;Data Source=MySerer;Initial Catalog=MyDB;Integrated Security=SSPI;"
在 .Net 网站中,以下连接字符串出现“用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败”错误。
<add name="Production"
connectionString="Data Source=MyServer;Initial Catalog=MyDB;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
两者都在 IIS 上的同一个应用程序池中运行,并且两个站点都设置为使用相同的管理员用户进行连接,如基本设置下设置的那样。
看起来,虽然 .Net 站点以管理员身份运行,但它无法将其传递给 SQL Server。不仅如此,如果我将登录名/密码硬编码到连接字符串中,它会返回与匿名登录相同的错误。
怎么了?
【问题讨论】:
-
您应该提供
Exception消息以查看发生了什么以及失败的原因 -
请不要使用管理帐户设置网站。您应该使用具有最小访问权限的单独服务帐户,该帐户被配置为有权访问数据库的应用程序池身份。
-
我删除了我的答案,因为我所说的由 IIS 传递到 SQL Server 连接的凭据是在应用程序池上设置的凭据。在此基础上,您能否显示实际应用程序池配置的屏幕截图以及无法连接的站点正在使用该应用程序池的事实?
-
您也可以分享您的 web.config 吗?你有这个启用吗?
<authentication mode="Windows">除非你能分享更多细节,否则向飞镖投掷飞镖。
标签: asp.net sql-server iis