2010-06-16 102 views
5

最简洁的,我的问题是,是否IIS下运行的ASP.NET 4.0应用程序7集成模式应该能够兑现我的Web.config文件中的这一部分:删除ASP.NET/IIS 7应用程序中特定路径的HttpModule?

<location path="auth/windows"> 
    <system.webServer> 
     <modules> 
     <remove name="FormsAuthentication"/> 
     </modules> 
    </system.webServer> 
    </location> 

我与混合模式验证试验(Windows和窗体 - 我知道还有关于这个主题的其他问题)。使用IIS管理器,我已禁用匿名身份验证身份验证/ Windows/winauth.aspx,它位于上面的位置路径。我设置了失败请求跟踪以跟踪各种HTTP状态代码,包括302。

当我请求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

而不是删除模块,如何删除该路径的窗体身份验证?

<location path="auth/windows"> 
    <system.Web> 
     <authentication mode="None"/> 
    </system.Web> 
    </location> 
+0

我试过了。它给出了一个黄色的异常页面,该属性不能设置在应用程序级别以下。 – soccerdad 2010-06-16 22:48:10