sql-server - 赢得身份验证 NT 权限\匿名登录

标签 sql-server asp-classic iis-7 windows-authentication

我有一个 asp 网页应用程序,在 IIS 上选中了集成 Windows 身份验证,并清除了“匿名访问”框。在高级 Windows 身份验证中,我选中了启用内核模式身份验证

应用程序池以管理域用户和集成模式运行。

当用户单击此应用程序内的某些网页时,我可以从日志中看到域用户名已发送到服务器,并且我在 Request.ServerVariables("AUTH_USER") 中也有值。

一切都很好,正如它应该的那样。我可以看到哪个用户访问应用程序。

现在,网页也可以访问SQL数据库了。 我有连接字符串,例如:

"Provider=SQLOLEDB.1;Integrated Security=SSPI;..."

但是当我访问数据库时,出现以下错误:

Microsoft OLE DB Provider for SQL Server error '80040e4d'

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

我怎么说呢,与 SQL Server 的连接是通过应用程序池帐户而不是匿名建立的?

最佳答案

我认为,如果您检查网站的配置文件中的身份标签,您会发现它设置如下:

<identity impersonate="true"/>

在你的配置中它应该是:

<identity impersonate="false"/>

这样,您就可以告诉 iis 不要模拟通过 Web 远程登录的人,而是使用应用程序池中指定的帐户。

here是一个包含主题简短描述的页面。

关于sql-server - 赢得身份验证 NT 权限\匿名登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31586455/

相关文章:

iis-7 - System.ServiceModel.Activation.HttpModule 错误

sql-server - 使用 SSMS 的所有数据库的磁盘使用情况摘要

javascript - 如何使用 Javascript 删除表格行

javascript - 从另一个页面控制 Javascript 计时器?

在经典 ASP 中对集合进行排序

silverlight-4.0 - 在 IIS7 上部署 Silverlight Lync 应用程序

sql-server - 使用 SELECT 进行更新会导致死锁

sql-server - 在 SQL Server 2008 上使用 sqlalchemy 等待数据库还原完成

sql - 如何获取从 SQL 表中删除的最后一行的 Id

iis-7 - IIS7 混合模式身份验证