关于防止用户在地址栏中直接输入网址

觉v醒 2010-06-23 01:54:22
为了防止用户直接在地址栏中输入网址 到达对应页面 我做了如下处理
在 pageload 里判断是否有session["userID"] 如果=null 跳转登陆页面

但是有个问题 如果已经登陆 直接复制url 到地址栏 就可以直接访问 相应页面 绕开了权限控制

我现在的想法是 判断地址栏的url 是否含有? 如果有跳转登陆 我地址栏的url始终是index.aspx

我现在找的方法 都是取请求的url (Request.RawUrl) 这方法取到的是真实的请求url 我想知道取地址栏的url 怎么取

还有我想问大家是怎么解决用户在地址栏中直接输入网址 我这样做 对吗?
...全文
1006 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
sww_0130 2010-06-24
  • 打赏
  • 举报
回复
你肯定是别的画面没有做session判断,建议你多看看session机制
qiuqingpo 2010-06-24
  • 打赏
  • 举报
回复
每个页面加权限就可以搞定了吧
V-Far 2010-06-24
  • 打赏
  • 举报
回复
有必要么?而且这样.你最多也就通过一些js代码银行url地址.但是第三方的浏览器一定会显示url地址的


你可以在url地址中加入随机数?rand=xxxx
关于这个随机数是你怎么得到的.就只有你知道了.可以按照权限.
比如有些页面的xxxx能被3整除什么的来判断.
gdlpc 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gdlpc 的回复:]
没有理由:不给用户在地址栏中直接输入网址!!!!!
[/Quote]屏蔽地址栏?
jhdxhj 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 aimyray 的回复:]
用forms认证,或者用httpmodule
[/Quote]
这个才是的
happy664618843 2010-06-24
  • 打赏
  • 举报
回复
强 牛人
宇峰科技 2010-06-24
  • 打赏
  • 举报
回复
学习了
piaocheng 2010-06-24
  • 打赏
  • 举报
回复
User user = (User)Session["user"];
if (user != null && user.UserRole.Id != 3 || user == null)
Response.Redirect("~/Admin/AdminLogin.aspx");


这样是可以的啊!
老Key 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vip__888 的回复:]
asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证
[/Quote]我还的同意这种思路!!!!
孟子E章 2010-06-24
  • 打赏
  • 举报
回复
判断 Request.UrlReferrer 属性
sugercgq 2010-06-24
  • 打赏
  • 举报
回复
权限控制,每个页面指定权限的唯一标识,由继承于page的类去处理,对每个角色都可分配权限,精确到按钮事件
aimyray 2010-06-24
  • 打赏
  • 举报
回复
用forms认证,或者用httpmodule
chen_ya_ping 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 lujun198206 的回复:]
为了防止用户直接在地址栏中输入网址 到达对应页面 我做了如下处理
在 pageload 里判断是否有session["userID"] 如果=null 跳转登陆页面

但是有个问题 如果已经登陆 直接复制url 到地址栏 就可以直接访问 相应页面 绕开了权限控制

我现在的想法是 判断地址栏的url 是否含有? 如果有跳转登陆 我地址栏的url始终是index.aspx

我现在找的……
[/Quote]
写个BAGEPAGE类,这个 class继承了page ,然后Override pageload 写个session的判断。
  • 打赏
  • 举报
回复
3楼正确,如果每个页面都有session判断,用户不可能直接输入url绕开权限控制。你肯定是只在登陆页面检查session,别的页面都没做
hrg2007 2010-06-24
  • 打赏
  • 举报
回复
学习学习
accomp 2010-06-24
  • 打赏
  • 举报
回复
Request.UrlReferrer 不行么 ? 直接输入的就是null,自动跳转到index就行 。
remymartin 2010-06-24
  • 打赏
  • 举报
回复
我是写一个基类,所有的页面都继承它,里面一个方法,接收一个页面ID,用户的ID,然后判断权限表里是否有此页面的权限.再来处理
这个办法笨了一点,但是绝对的有效
gdlpc 2010-06-23
  • 打赏
  • 举报
回复
屏蔽地址栏?
gdlpc 2010-06-23
  • 打赏
  • 举报
回复
没有理由:不给用户在地址栏中直接输入网址!!!!!
Teng_s2000 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 lujun198206 的回复:]

但是有个问题 如果已经登陆 直接复制url 到地址栏 就可以直接访问 相应页面 绕开了权限控制
[/Quote]
用Session的目的就是规定时间内保存用户的登录信息

你只能是在不同的页面设置不同的权限,如果Session的用户对此页面没有权限则返回到你的登录页面


参考forms验证
加载更多回复(2)

62,025

社区成员

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

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

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

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