首页 新闻 赞助 找找看

ASP.NET下对文件夹和页面的验证配置

0
悬赏园豆:30 [已解决问题] 解决于 2008-11-06 08:54

站点的结构图如上图。请教一下如何在Web.config设置这些验证。

1、只有管理员才可用访问Admin文件夹的所有文件。role==admin

2、User.aspx必须登陆才可用访问。role=member

3、其他页面没有登陆都可用访问。

在web.config应该如何配置?

我在Admin文件夹建立的web.config是这样设置的。好像不行

 

<configuration>
 <location path="Admin">
  <system.web>
   <authentication mode="Forms">
    <forms loginUrl="~/Admin/Login.aspx" path="~/Admin/" protection="All" name="AdminForms" timeout="30" defaultUrl="~/Admin/Default.aspx" />
   </authentication>
   <authorization>
    <deny users="?" />
    <!--<allow users="*" />-->
   </authorization>
  </system.web>
 </location>
</configuration>

还有跟目录的web.config如何配置?

 

[我是迭戈]的主页 [我是迭戈] | 初学一级 | 园豆:130
提问于:2008-10-31 12:45
< >
分享
最佳答案
0

你要把这段直接放在根目录的web.config下
<location path="Admin">
    <authorization>
        <allow roles="admin"/>
    </authorization>
</location>
<location path="User.aspx"
    <authorization>
        <deny users="?"/>
        <allow roles="member"/>
    </authorization>
</location>

Gray Zhang | 专家六级 |园豆:17610 | 2008-10-31 13:46
其他回答(4)
0

如果还不行

检查下globals.cs中的对role的操作是不是写在这个事件中Application_PostAuthenticateRequest

wingoo | 园豆:1513 (小虾三级) | 2008-10-31 13:54
0

同意一楼的

Geeks | 园豆:560 (小虾三级) | 2008-10-31 14:24
0

<forms loginUrl="~/Admin/Login.aspx" path="~/Admin/" protection="All" name="AdminForms" timeout="30" defaultUrl="~/Admin/Default.aspx" />

这句也有问题吧,你的意思是当不是管理员身份的时候跳转到loginUrl="~/Admin/Login.aspx"这个页面,作为一个没有经过Windows验证的普通客户端用户来说,是永远也不可能登录的啊,所以永远也不可能跳转到 loginUrl="~/Admin/Login.aspx"这个页面,正确的做法应该是把这个login.aspx页面放到admin文件夹外面。

  这是我的个人理解,不知道是否正确,供参考

Leason Li | 园豆:205 (菜鸟二级) | 2008-10-31 14:44
0

一楼的完全正确!

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2008-10-31 20:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册