.Net Forms身份验证对静态文件无效的问题?


我使用的是.Net2.0做的企业网站,其中把所有后台的页面都放在admin这个文件夹下,而且对该文件夹使用了forms身份验证,然后在实际使用中该验证只对与.net相关的文件有效(如.ashx,.aspx),而对于.html这些静态的文件是无效的,如果我想对该文件夹下的所有文件都需要验证过后才可以查看,那该如何做?

补充:我使用的是iisexpress,

这是我根目录下的web.config


 <!--
        通过 <authentication> 节可以配置
        安全身份验证模式,ASP.NET 
        使用该模式来识别来访用户身份。
    -->
<authentication mode="Forms">
  <forms name=".IsAspCmsAuth" loginUrl="~/LoginRedirect.ashx" timeout="30"/>
</authentication>

这是我admin文件夹下的web.config


 <?xml version="1.0"?>
<configuration>
  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Login.ashx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <system.web>
    <authorization>
      <allow roles="users"/>
      <allow roles="system"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>

forms身份验证 .net asp.net

黑貓キキ君 10 years, 4 months ago

 <?xml version="1.0"?>
<configuration>
  <system.webServer>
    <handlers>
      <!--
            将静态文件的处理权交给ASP.NET,
            这样就可以使用下面的验证规则来验证这些静态文件了。
       -->
      <add name="static_html_handler_htm" path="*.htm" verb="*" type="System.Web.StaticFileHandler" />
      <add name="static_html_handler_html" path="*.html" verb="*" type="System.Web.StaticFileHandler" />
    </handlers>
  </system.webServer>

  <!--
        该文件夹的验证规则,
        只有拥有users和system角色的人才能访问该文件夹下的页面。
  -->
  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Login.ashx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <system.web>
    <authorization>
      <allow roles="users,system"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>

NStal answered 10 years, 4 months ago

Your Answer