最简洁的是,我的问题是在IIS 7集成模式下运行的ASP.NET 4.0应用程序是否应该能够遵循我的Web.config文件的这一部分:
<location path="auth/windows">
<system.webServer>
<modules>
<remove name="FormsAuthentication"/>
</modules>
</system.webServer>
</location>
我正在尝试使用混合模式身份验证(Windows和Forms - 我知道S.O.还有关于该主题的其他问题)。使用IIS管理器,我已禁用匿名身份验证到auth / windows / winauth.aspx,它位于上面的位置路径中。我将失败的请求跟踪设置为跟踪各种HTTP状态代码,包括302s。
当我请求winauth.aspx页面时,返回302 HTTP状态代码。如果我查看请求跟踪,我可以看到401(未授权)最初是由AnonymousAuthenticationModule生成的。但是,FormsAuthenticationModule将其转换为302,这是浏览器看到的。因此,似乎我尝试从该管道中的页面管道中删除该模块不起作用。但我没有在任何地方看到任何投诉(事件查看器,黄页死亡等),这表明它是无效的配置。我希望401返回到浏览器,可能包含一个合适的WWW-Authenticate标题。
其他几点:a)我的Web.config中有<authentication mode="Forms">
,这就是302重定向到的内容; b)我得到了我试图从inetserv \ config \ applicationHost.config文件中删除的模块的“名称”; c)我在Web.config文件中有这个元素:<modules runAllManagedModulesForAllRequests="false">
。
任何人都有幸以这种方式移除模块吗?
答案 0 :(得分:0)
如何删除该模块,而不是删除该模块?
<location path="auth/windows">
<system.Web>
<authentication mode="None"/>
</system.Web>
</location>