文件下载的权限控制(asp.net)

笔者做一个报表展示的网站,报表使用 excel 形式存放在服务器,希望登录的人或者有权限的人才能下载 excel 报表。但是文件下载的路径无法隐藏,所以页面控制根本没用。近日在研究 iis 的时候,突然就豁然开朗了。

首先编辑或者修改网站的 web.config, 加入或者修改红色区域

1<authentication mode="Forms">
2<forms loginurl="login.aspx" name=".ASPXUSERDEMO" path="/" protection="All" timeout="60"><credentials passwordformat="SHA1"></credentials></forms>
3</authentication>
 1<authorization>
 2<deny users="?"></deny>
 3<!--  <allow  users="[  逗号分隔的用户列表  ]" 
 4
 5roles="[  逗号分隔的角色列表  ]"/>
 6
 7<deny  users="[  逗号分隔的用户列表  ]" 
 8
 9roles="[  逗号分隔的角色列表  ]"/>
10
11\-->
12</authorization>

接着编写 login.aspx

对于登录成功者加入

FormsAuthentication.SetAuthCookie(uid, false );

FormsAuthentication.RedirectFromLoginPage(uid, false );

打开 iis,找到你的网站,点右键,选属性,-》主目录-》配置

然后在“映射”中选添加,

添加如上图。

好了,大功告成,现在再访问主站下的一个 xls 文档 http://localhost/sms/1.xls ,看到什么?

呵呵,没错,需要您登录了。当你输入登录信息并且登录了您才能下载这个文件!

对,就这么简单,如果加上 role ,可以进行更复杂的控制。

欢迎交流( [email protected] 无锡国税瞿惠春)

Published At
Categories with Web编程
Tagged with
comments powered by Disqus