永发信息网

ASP.NET 防止直接从URL进入页面的方法

答案:1  悬赏:30  手机版
解决时间 2021-03-27 20:42
  • 提问者网友:寂寞梧桐
  • 2021-03-27 14:03
ASP.NET 防止直接从URL进入页面的方法
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-03-27 14:17
标准的做法,是登陆成功后,在服务器建立一个session变量,赋以一个特定的值。这样的话,每次页面打开前都检测这个变量的值,如果与指定的值不相等,就说明还没登陆或者已过期,自动跳转到登陆页面要求重新登录;如果相等,就进入页面。session的生命周期默认是20分钟,就是说如果在20分钟内浏览器与服务器没有连接,session对象就会自动销毁,变量值也会清除。几乎所有需要用户登录的网页都是这样做的。除了session,还可以利用cookie或数据库,但很少见。追问多谢回复~但我有两点没太明白。1、用户在浏览器登录时,怎么获得Session的值呢?是在登录的界面赋给它,然后再以参数的形式加到url里再与Session比较吗?2、怎么做到让Session每20分钟更新一次呢?追答1、登陆的时候你只管登陆就行,这时候跟session是没有半毛钱关系的。当登陆的信息提交到服务器后,这时候要打开数据库,比对登录信息,如果核对正确,这时候才建立session变量的,此后服务器的内存中就会保留这个变量的值,当你再次打开网页时,这个值仍然存在的,因此每次判断这个值,如果存在,就说明你是曾经登录过的,是合法的用户;如果这个值不存在,就说明你不是经过登陆后进来的,是在地址栏直接输入网址进来的,是非法的用户!这时候可以提醒后退出,或者强行跳转到登录页面要求用户登录。
2、当这个session对象建立后,只要你在20分钟内打开了同一网站的任何一个页面或刷新了页面(换句话说就是只要浏览器与服务器之间发生了任何的数据往来活动),那么这个20分钟的时限就会自动顺延,也就是说只要你一直浏览网站的各个页面或每隔一段时间就刷新一下页面,网站就会认为你一直在线,session变量也就一直存在,那么你的登录状态也会一直保持下去。而只要你关闭了浏览器(注意是关闭整个浏览器,只关闭标签是不算的)或者超过20分钟页面也没有进行刷新,网站就会认为你离线了,这样它就会把和你的浏览器对应的session对象销毁。这么做也是为了安全考虑嘛。当然这个20分钟时限是可以修改的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯