[ASP.NET2.0]限制web用户对指定目录下的特定类型文件的访问

本文介绍了如何通过配置IIS和web.config文件,来限制非ASPX文件(如.rar, .zip, .doc, .ppt, .xls等)在指定目录的访问权限。通过将特定文件类型映射到ASP.NET ISAPI,并设置授权规则,可以实现对静态文件的保护。同时,当上层目录存在相同类型但需要公开的文件时,可以通过额外的web.config配置来排除这些文件。" 120391609,9320840,CSP-J 2021初赛官方答案与试题解析,"['编程竞赛', 'CSP', '青少年编程', '算法比赛']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

默认配置下,通过配置web.config文件,比如下边的形式:

<? xml version="1.0" encoding="utf-8" ?>
< configuration  xmlns ="http://schemas.microsoft.com/.NetConfiguration/v2.0" >
    
< system .web >
        
< authorization >
            
< allow  roles ="Members"   />
            
< allow  roles ="Administrators"   />
            
< deny  users ="*"   />
        
</ authorization >
    
</ system.web >
</ configuration >

我们可以实现对特定目录下的ASPX文件的保护,使得特定角色可以才能访问.但如果我们要保护的文件不是ASPX文件,这种单纯的配置将不起作用.

现在我们可以通过以下方式实现对特定目录下的特定类型文件的保护.:

1.配置IIS,将特定类型的文件映射到asp.net isapi;

      比如将.rar映射到asp.net isapi

2.在受保护目录下建立web.config文件,并配置授权访问规则

3.在web.config的<system.web>段添加以下内容:

<httpHandlers>

<add path="*.rar" verb="*" type="System.Web.StaticFileHandler" validate="True" />

  </httpHandlers>

 至此,配置完成.

完整的web.config形式如下:

<? xml version="1.0" encoding="utf-8" ?>
< configuration  xmlns ="http://schemas.microsoft.com/.NetConfiguration/v2.0" >
    
< system .web >
        
< authorization >
            
< allow  roles ="Administrators"   />
            
< allow  roles ="Members"   />
            
< deny  users ="*"   />
        
</ authorization >
    
< httpHandlers >
        
< add  path ="*.rar"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="True"   />
        
< add  path ="*.zip"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="True"   />
        
< add  path ="*.doc"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="True"   />
        
< add  path ="*.ppt"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="True"   />
        
< add  path ="*.xls"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="True"   />
    
</ httpHandlers >
    
    
</ system.web >
</ configuration >

注意:以上配置中,我还添加了对zip,doc,ppt,xls文件的保护.

如果需要保护的子目录的上层目录有与被保护的文件类型相同的文件,并且希望这些上层目录的文件不被保护,那么你需要在上层目录(不需要文件保护)的web.config中的<system.web>段添加如下的信息:

     < httpHandlers >
        
< add  path ="*.rar"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="False"   />
        
< add  path ="*.zip"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="False"   />
        
< add  path ="*.doc"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="False"   />
        
< add  path ="*.ppt"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="False"   />
        
< add  path ="*.xls"  verb ="*"  type ="System.Web.StaticFileHandler"  validate ="False"   />
    
</ httpHandlers >

这样,配置几乎就完美了。

----------------------------

参考资料:http://forums.asp.net/thread/1307695.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值