首页新闻找找看学习计划

membership问题

0
悬赏园豆:30 [已关闭问题]
我使用membership遇到以下问题<br><br>(1)我想用一个页面登录给不同角色的人登录,意思就是如果是管理,登录后到admin/home.aspx ,如果是不同用户,登录后就到common/home.aspx<br><br>&nbsp;(2)当我直接访问一个页面, 假如admin/user.aspx,user.aspx是只允许admin访问,所以应该回到login页面,而且地址会使这样的login.aspx?ReturnUrl=admin/user.aspx. 这个时间出问题了,就是此时我用普通用户登录,但是他记住了 returnurl,要返回这一页,可是这一页没权限,又返回登录页面,我想使用时,此时如果login是曾管理员页面跳过来的,那个如果普通用户就直接登录到common/home.aspx, 如果是管理员则返回到最初的页面。<br><br>&nbsp;我从网上查了些资料,要么实现的1,要么实现的2,我想1,2的功能都想要,请问呢membership能否实现<br>&nbsp;<br>
问题补充: 谢谢大家这么多建议,我的客户就指明要用membership,我放在basepage, httpmodule处理都不行,问题的关键是当输入一个页面后返回时,我不能确定这个页面的权限,也就是我不知访问者身份。 当登录后才知道,而且此时我也无法判断 returnurl的地址,是不是当前用户有权限,因为我是根据location path对整个目录设置权限,有可能是管理员第一次请求输入普通用户的地址,也有可能是普通用户输入管理员的地址。 总结一下:登录后,就是如果第一次请求的地址当前访问者有权限则记住那个地址并导向returnurl页,如果没权限登录后返回到该角色默认页面而不是 login也。
敏捷的水的主页 敏捷的水 | 初学一级 | 园豆:170
提问于:2007-12-11 00:14
< >
分享
其他回答(7)
0
给你个土土的办法,不知道是否可行: 在点Login的时候,把login.aspx后面的ReturnUrl去掉,否则人家如果手工输入你一样也会挂掉,原理也不离谱,因为你的Login的转向需要的条件是来自用户的身份,而非url可以决定的…… 推荐使用JavaScript来做
volnet(可以叫我大V) | 园豆:720 (小虾三级) | 2007-12-11 00:44
0
同意楼上的,另外最好把url编码了,那么别人也就不能轻易知道你的ReturnUrl
(心)Shing Ye | 园豆:125 (初学一级) | 2007-12-11 09:08
0
我处理这样的问题使用的方法比较笨,你可以给用户分配一个角色ID什么的,登陆后将ID写入cookie或session,在需要不同访问权限的页面做访问控制就可以了,具体的我想你能明白了,这个是比较笨的方法了,有些麻烦,不过挺管用的,呵呵
niugm | 园豆:1685 (小虾三级) | 2007-12-11 10:04
0
登录是用的vs里的控件? 可以自己在login的按钮事件里判断用户角色,然后跳转到不同地方.. 如果有returnurl,也可以先判断角色..看地址是否与角色相符,再跳转:)
wingoo | 园豆:1513 (小虾三级) | 2007-12-11 12:23
0
我觉得Url的问题跟安全关系不大,重点应该是做好权限认证部分,但是总有程序员潜意识里希望自己的后台地址不要让人知道 楼主的问题在登录页内部判断即可,依据权限在登录后导向不同的页面,无需ReturnUrl参数
魔都KK | 园豆:340 (菜鸟二级) | 2007-12-11 12:55
0
其实你就是想方便自己嘛,判断出是管理员的就用带returnurl的setcookie函数,不是就用不带跳转的setcookie然后跳转到common/home.aspx
today4king | 园豆:3267 (老鸟四级) | 2007-12-11 17:20
0
1、可以试试,在Web.config中指定登录后的页面,然后在这个页面中实现跳转。(我个人建议,是都定位到一个页面,然后根据角色,来显示不同的链接,比如,是管理员的话,就会有管理连接,而普通用户这看不到) 2、不是很清楚要干什么,不过可以试试.NET 内置的角色管理,通过配置Web.config文件,限制什么角色或用户可以访问什么页面。 (呜咕。。。 刚刚写的没了~~)
G yc {Son of VB.NET} | 园豆:2006 (老鸟四级) | 2007-12-11 18:54
0
开启管理角色,设置管理员角色可访问,不知道设置的话就直接如下执行: 网站--->asp.net配置---->安全----->[启用角色(只指定用户就不需要了)]---->设置规则 web.config中 <authorization> <allow user="admin" /> ----->允许admin用户访问 <deny user="?" /> ----->禁止匿名用户访问 <allow roles="admin" /> ------>允许角色"admin"访问 </authorization> 注:每个目录下都可以有一个WEB.config,主目录中要设置身份验证模式为Forms 详细解释请看下我的博客
天际翔龙 | 园豆:215 (菜鸟二级) | 2007-12-12 19:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册