asp.net 目录权限问题,100分

wecen 2008-07-16 12:22:43
我已经在 web.config设置好目录的授权
<authentication mode="Forms">
<forms name=".ASPXAUTHBBBCCCC" loginUrl="~/Default.aspx" defaultUrl="~/Main/default.aspx" protection="All" timeout="216000" path="/" requireSSL="false" slidingExpiration="true">
</forms>
</authentication>

<authorization>
<allow users="?"/>
</authorization>


<location path="main" allowOverride="false">
<system.web>
<authorization>
<allow roles="dealer,accessor,agent,admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="main/dealer" allowOverride="false">
<system.web>
<authorization>
<allow roles="dealer"/>
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="main/accessor" allowOverride="false">
<system.web>
<authorization>
<allow roles="accessor"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="main/agent" allowOverride="false">
<system.web>
<authorization>
<allow roles="agent"/>
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="main/admin" allowOverride="false">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>

和Rolesmanager一起使用,当用户登录后都可以入各自目录并可以访问aspx页面,但如果要访问的页面是其他文件类型,比如: html,txt 文件就不受目录的限制,可以在没有身份验证的情况下,可以直接输入地址打开文件而不会返回到登录页面. 请问是不是目录权限只对aspx页面起作用,其他文件不起作用. 有什么好的解决方法,控制目录?
...全文
215 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
laolang86 2008-10-06
  • 打赏
  • 举报
回复
强烈要求控制文件夹的例子!
楼上估计没多大关系吧?
wangwenyi12345 2008-07-17
  • 打赏
  • 举报
回复
学习
yagebu1983 2008-07-17
  • 打赏
  • 举报
回复
没弄过!!
关注!!
wecen 2008-07-17
  • 打赏
  • 举报
回复
控制文件夹的方法能否给出例子?
iuhxq 2008-07-17
  • 打赏
  • 举报
回复
呵呵,还是比较麻烦的
wecen 2008-07-17
  • 打赏
  • 举报
回复
分会很快给,但控制文件夹又怎样控制呢?
wecen 2008-07-17
  • 打赏
  • 举报
回复
谢谢大家的问答,问题已解决
一、在IIS中设置限制
1、 打开 Internet 信息服务(IIS)管理器 → 右击本项目虚拟 → 属性,如下图
2、 点击按钮“配置”,出现如下对话框:
3、 双击 .aspx 的应用程序扩展 → 查看对话框内容,如下图:
4、 复制“可执行文件”的全路径名称后 → 点击“取消”返回上一层对话框 → 点击按钮“添加”

5、 粘贴刚才复制的内容(我的系统装在 D 盘,所以内容为 D:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll ) → 填写后缀名为 .htm → 填写动作限制为“GET,HEAD,POST,DEBUG”

二、如果要下载文件,whoami333 回答的一样: 使用Response.BinaryWrite()函数进行下载txt文件..具体的函数
protected void GetDownLoadFile(string FilePath)
{
FileStream f = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
Response.ClearHeaders();
Response.ContentType = "application/x-msdownload";
Response.AddHeader("Content-Disposition", "attachment;filename= " + System.IO.Path.GetFileName(FilePath));
byte[] buffer = new byte[4096];
long len = 0;
int b = f.Read(buffer, 0, buffer.Length);
while (b > 0)
{
Response.BinaryWrite(buffer);
len += b;
b = f.Read(buffer, 0, buffer.Length);
}
f.Close();
Response.AddHeader("Content-Length", len.ToString());
Response.Flush();
Response.Close();
}
mengxj85 2008-07-17
  • 打赏
  • 举报
回复
学习,看看System.IO.Directory.***或许有对文件夹操作命令中或许有相关方法
mengxj85 2008-07-17
  • 打赏
  • 举报
回复
控件文件夹没做过,但是这几天做些对文件与文件夹的操作,看看System.IO.File.--文件操作 System.IO.Directory.--是操作文件夹的
  • 打赏
  • 举报
回复
我是纯粹进来JF的。
guying999 2008-07-16
  • 打赏
  • 举报
回复
只能控制aspx类型,如果是html页可以改成aspx,如果是文本文件可以采用aspx文件内容的方式呈现,也可以通过HttpHandler自己写控制机制,不过那就相对比较麻烦了。
symbol441 2008-07-16
  • 打赏
  • 举报
回复
只能控制aspx类型,如果是html页可以改成aspx,如果是文本文件可以采用aspx文件内容的方式呈现哈
exy337 2008-07-16
  • 打赏
  • 举报
回复
看贴回下贴
yigeming 2008-07-16
  • 打赏
  • 举报
回复
mark
xierfly 2008-07-16
  • 打赏
  • 举报
回复
如果控制文件夹,那就没问题。控制文件,只能控制aspx类型的,其他的控制不了。
suyiming 2008-07-16
  • 打赏
  • 举报
回复
控制一个文件里面的东西 完全可以
whoami333 2008-07-16
  • 打赏
  • 举报
回复
目录权限只对aspx页面起作用,应该是这样的。html文件你可以把后缀改成aspx的吧。文本文件不要放在目录下,response.writefile...

一点儿愚见。顺便学习下。帮顶。
namhyuk 2008-07-16
  • 打赏
  • 举报
回复
试了一下,的确防不住txt文件。
fancycgx3650 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 guying999 的回复:]
只能控制aspx类型,如果是html页可以改成aspx,如果是文本文件可以采用aspx文件内容的方式呈现,也可以通过HttpHandler自己写控制机制,不过那就相对比较麻烦了。
[/Quote]
JeffChung 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 symbol441 的回复:]
只能控制aspx类型,如果是html页可以改成aspx,如果是文本文件可以采用aspx文件内容的方式呈现哈
[/Quote]
加载更多回复(2)

62,133

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧