.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>
阅读 4.4k
1 个回答
新手上路,请多包涵
<?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>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进