<location path="auth/windows">
<system.webServer>
<modules>
<remove name="FormsAuthentication"/>
</modules>
</system.webServer>
</location>
我正在试验混合模式身份验证(Windows和窗体—我知道关于这个主题,在S.O.上还有其他问题)。使用IIS管理器,我禁用了对auth/windows/winauth.aspx的匿名身份验证,它位于上面的位置路径中。我已经失败的请求跟踪设置跟踪各种HTTP状态码,包括302。
当我请求winauth.aspx页面时,返回302 HTTP状态码。如果我查看请求跟踪,我可以看到401(未经授权)最初是由AnonymousAuthenticationModule生成的。但是,FormsAuthenticationModule将其转换为302,这是浏览器看到的。因此,似乎我试图从该路径中的页面的管道中删除该模块是行不通的。但我没有看到任何抱怨(事件查看器、死亡黄页等)表明这是一个无效的配置。我希望401返回到浏览器,它可能会包含一个适当的WWW-Authenticate头。
还有几点:A)我确实有
<authentication mode="Forms">
在我的Web.config中,这就是302重定向到的内容;b) 我得到了试图从inetserv\config\applicationHost.config文件中删除的模块的“名称”;c) 我的Web.config文件中有以下元素:
<modules runAllManagedModulesForAllRequests="false">
有人用这种方式移除模块吗?