我目前正在尝试将旧版ASP应用程序从Windows Server 2000和IIS5迁移到Windows Server 2008和IIS7。此应用程序的身份验证使用ISAPI筛选器。除了一个问题,应用程序和ISAPI筛选器都在新环境中工作。有问题的应用程序被设置为根应用程序(如您通过转到http://hostname/application.asp访问它)。如果我通过指定的URL访问它,它会询问我的身份验证详细信息,ISAPI筛选器会传递正确的登录详细信息,然后执行其操作。然后我向IIS7添加了一个默认文档,指向application.asp。现在,如果我通过转到http://hostname来访问应用程序,则ISAPI过滤器会传递错误的登录详细信息。 ISAPI过滤器实现了此方法:
DWORD CMyISAPIFilter::OnAuthentication(CHttpFilterContext* pCtxt, PHTTP_FILTER_AUTHENT pAuthent)
其中,pAuthent对象在调用ISAPI过滤器时由IIS传入,并具有pszUser属性,该属性通常保存在身份验证对话框中输入的值。在我的情况下(使用默认文档条目访问网站时),pszUser属性保存运行应用程序池的Windows帐户的值。为了清楚起见,如果我输入application.asp部分,ISAPI过滤器会传递正确的值。
我对这个问题感到非常难过,并且不知道如何解决这个问题。为了使事情有效,我无法真正重建/修改ISAPI过滤器,而且在IIS管理方面我是初学者。
我还发现,如果IIS没有安装默认文档功能,身份验证仍然有效。没有此功能,默认文档(自然)不起作用,但身份验证确实有效。只有在我添加默认文档功能后,身份验证才会中断。
感谢您的帮助!
答案 0 :(得分:0)
听起来网站配置为在根级别使用集成安全性。确保从Integrated Windows Authentication
- 标签中的Directory Security
复选框中删除复选标记。
也可以配置节点“网站”。所以请确保你不要错过那个; - )
编辑:该死的我无法上传图片。可以让您更轻松地找到设置。