代码之家  ›  专栏  ›  技术社区  ›  Donnie Hale

正在删除ASP.NET/IIS 7应用程序中特定路径的HttpModule?

  •  6
  • Donnie Hale  · 技术社区  · 16 年前

      <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">

    有人用这种方式移除模块吗?

    1 回复  |  直到 16 年前
        1
  •  0
  •   John Saunders    16 年前

    与其删除模块,不如删除该路径的窗体身份验证?

      <location path="auth/windows"> 
        <system.Web> 
            <authentication mode="None"/> 
        </system.Web> 
      </location> 
    
    推荐文章