悬赏分:30 浏览:781 次
|
给你个土土的办法,不知道是否可行:
在点Login的时候,把login.aspx后面的ReturnUrl去掉,否则人家如果手工输入你一样也会挂掉,原理也不离谱,因为你的Login的转向需要的条件是来自用户的身份,而非url可以决定的……
推荐使用JavaScript来做 同意楼上的,另外最好把url编码了,那么别人也就不能轻易知道你的ReturnUrl 我处理这样的问题使用的方法比较笨,你可以给用户分配一个角色ID什么的,登陆后将ID写入cookie或session,在需要不同访问权限的页面做访问控制就可以了,具体的我想你能明白了,这个是比较笨的方法了,有些麻烦,不过挺管用的,呵呵 登录是用的vs里的控件? 可以自己在login的按钮事件里判断用户角色,然后跳转到不同地方.. 如果有returnurl,也可以先判断角色..看地址是否与角色相符,再跳转:) 我觉得Url的问题跟安全关系不大,重点应该是做好权限认证部分,但是总有程序员潜意识里希望自己的后台地址不要让人知道 楼主的问题在登录页内部判断即可,依据权限在登录后导向不同的页面,无需ReturnUrl参数 其实你就是想方便自己嘛,判断出是管理员的就用带returnurl的setcookie函数,不是就用不带跳转的setcookie然后跳转到common/home.aspx 1、可以试试,在Web.config中指定登录后的页面,然后在这个页面中实现跳转。(我个人建议,是都定位到一个页面,然后根据角色,来显示不同的链接,比如,是管理员的话,就会有管理连接,而普通用户这看不到) 2、不是很清楚要干什么,不过可以试试.NET 内置的角色管理,通过配置Web.config文件,限制什么角色或用户可以访问什么页面。 (呜咕。。。 刚刚写的没了~~) 开启管理角色,设置管理员角色可访问,不知道设置的话就直接如下执行: 网站--->asp.net配置---->安全----->[启用角色(只指定用户就不需要了)]---->设置规则 web.config中 <authorization> <allow user="admin" /> ----->允许admin用户访问 <deny user="?" /> ----->禁止匿名用户访问 <allow roles="admin" /> ------>允许角色"admin"访问 </authorization> 注:每个目录下都可以有一个WEB.config,主目录中要设置身份验证模式为Forms 详细解释请看下我的博客 |