我有一个在 IIS 6.0 下正常工作的网站:它使用 Windows 凭据对用户进行身份验证,然后在与访问数据库的服务通信时,它会传递凭据。
在 IIS 7.0 中,相同的配置设置不会传递凭据,并且数据库会受到 NT AUTHORITY\ANONYMOUS 的影响。
我有什么遗漏的吗?我已在 IIS 7.0 网站中关闭了匿名访问,但无法正常工作。
这些是我在 IIS 6.0 和 7.0 上使用的设置:
<authentication mode="Windows">
<identity impersonate="true">
6.0 到 7.0 发生了什么变化?
IIS7和IIS6.0之间发生了变化。我为您找到了一篇可能真正对您有帮助的博客文章(点击此处查看 http://mvolo.com/blogs/serverside/archive/2007/12/08/IIS-7.0-Breaking-Changes-ASP.NET-2.0-applications-Integrated-mode.aspx).
您的应用程序是在集成模式还是经典模式下运行?据我所知,将 Impersonate 属性设置为 true 应该会显示 500 错误,并显示以下错误消息:
内部服务器错误。这是 HTTP
错误500.19:请求的页面
无法访问,因为相关
该页面的配置数据是
无效的。
以下是建议的解决方法:
解决方法:
1)如果您的应用程序不依赖
冒充请求用户
在 BeginRequest 和
AuthenticateRequest 阶段(唯一的
不进行模仿的阶段
可能在集成模式下),忽略
通过添加以下内容来解决此错误
您的应用程序的 web.config:
<validation validateIntegratedModeConfiguration="false"
/>
2)如果您的应用程序确实依赖于
BeginRequest 中的模拟和
AuthenticateRequest,否则您不是
当然,转到经典模式。
我希望这对了解 IIS 7.0 现在的工作原理有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)