简而言之,我的问题是,在IIS 7集成模式下运行的ASP.NET 4.0应用程序是否应该能够遵守我的Web.config文件的这一部分:
<location path="auth/windows"> <system.webServer> <modules> <remove name="FormsAuthentication"/> </modules> </system.webServer> </location>
我正在尝试混合模式身份validation(Windows和窗体)。 使用IISpipe理器,我已经禁用匿名身份validationauth / windows / winauth.aspx,这是在上面的位置path。 我有失败的请求跟踪设置来跟踪各种HTTP状态代码,包括302。
当我请求winauth.aspx页面时,返回一个302 HTTP状态码。 如果我查看请求跟踪,我可以看到401(未经授权)最初由AnonymousAuthenticationModule生成。 但是,FormsAuthenticationModule将其转换为302,这是浏览器所看到的。 所以看起来好像我尝试从该path中的页面中移除该模块不起作用。 但我没有看到任何地方的任何投诉(事件查看器,死亡黄页等),这将表明这是一个无效的configuration。 我希望401返回到浏览器,这大概会包含一个适当的WWW-Authenticate标头。
其他几点:a)我的Web.config中有<authentication mode="Forms"> ,这是302redirect到的; b)我想要从inetserv \ config \ applicationHost.config文件中删除模块的“名称”; c)我有我的Web.config文件中的这个元素: <modules runAllManagedModulesForAllRequests="false"> ; d)我尝试了一个<location>元素来设置authentication模式为“None”的path,但是那个黄色的exception页面不能在应用程序级别下面设置属性。
任何人都有这样的运气删除模块?