.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>
黑貓キキ君
10 years, 4 months ago
Answers
<?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