我们有一个经典的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;"

因此:如何迫使Classic ASP模仿除NT AUTHORITY\ANONYMOUS LOGON之外的用户帐户?

最佳答案

重要的是匿名用户身份。因此,您必须做出正确的选择。在这种情况下,应用程序池具有我要应用程序使用的身份,但是此应用程序实际上并未使用它。

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

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

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

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

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

重新启动Web服务器。

09-27 01:23