经典ASP页面冒充NT AUTHORITY \ ANONYMOUS LOGON

时间:2014-01-03 18:52:54

标签: iis iis-7 asp-classic impersonation

我们有一个经典的ASP应用程序。我正在尝试使用相同的IIS7实例在同一台服务器上克隆它,因此我们有一个开发版本。我复制了文件,并复制了我在IIS管理器中可以找到的所有配置。

问题是数据库访问。新副本使用与旧版本相同的应用程序池和相同的连接字符串,但是当我创建ADODB.Connection并使用相同的旧连接字符串调用conn.Open(str)时,该调用将抛出"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'."

这不是应用程序池正在使用的用户帐户,但这似乎无关紧要。

"Provider=SQLOLEDB;Data Source=OURSVR;Initial Catalog=OURDB;Integrated Security=SSPI;"

那么:你如何强制经典ASP模拟NT AUTHORITY\ANONYMOUS LOGON以外的用户帐户?

1 个答案:

答案 0 :(得分:9)

匿名用户身份非常重要。所以你必须做到这一点。在这种情况下,应用程序池具有我希望应用程序使用的标识,但此应用程序实际上并未使用它。

在IIS7的IIS管理器中,左键单击树中的应用程序,然后单击中间窗格底部的“功能视图”选项卡。

在“IIS”下(我在该窗格的“分组依据:”下拉列表中选择了“区域”),找到“身份验证”(或“真实...”,如果列表视图没有'有焦点)。

双击它。应该启用“匿名身份验证”(它是)。

右键单击“匿名身​​份验证”,然后从上下文菜单中选择“编辑...”。

将“匿名用户身份:”从“特定用户:”(“IUSR”)更改为“应用程序池标识”,然后单击“确定”。

重新启动Web服务器。