在做项目的时候,会遇到客户要求对html文件进行管理,但是,默认情况下,Web.Config只对
aspx这些asp.net的文件进行管理,html文件是管理不到的。
下面说一下我的做法,对于静态文件,如果有具体用户角色权限控制的,需要另外用程序处理。
在这里我只介绍通过Forms校验后的用户可以访问html文件,没有通过的用户,无法访问的处理控制方法。
首先,建一个目录/doc,把需要权限控制的html文件放在这个目录下,另外在目录下建一个web.config
文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="mathplayer.html">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<system.webServer>
<handlers>
<remove name="WHB" />
<add name="WHB" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
</handlers>
</system.webServer>
</configuration>
关键语句有两个:
1:<deny users="?" />
不允许匿名用户访问文件 mathplayer.html
2:<add name="WHB" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
在当前目录下添加脚本映射,使用.net的权限控制机制管理*.html文件。
完成以上工作后,如果直接输入url地址去访问mathplayer.html文件,系统将自动跳转到/Login.aspx(根目录下web.config有Forms校验设置)
当输入用户名/密码,登录系统以后,再输入url地址去访问mathplayer.html文件,这个html文件可读了!简单权限控制实现!