各位大哥好,我比较菜。有个问题困扰了我很久一直想不明白,希望得到各位的帮助,越详细越好。
像银行系统那样,在客户端通过直接关闭所有的后台管理页面后,(将后台的url拷到浏览器里)再次登录后台管理系统要求必须输入用户名和密码,这是如何实现的。
一般的后台,如果用户是直接关闭所有后台页面,而不是通过单击退出按钮来退出系统的话,关闭后(只要你的session还没有超时)只要你把后台的页面的地址拷贝到浏览器,是可以直接登录后台的,天涯社区好像也还是有这个问题的。
人家工商银行的就做得很好,我试过直接在进程里关闭浏览器,再重新打开,也绕不过他的登录验证界面。
他们究竟是怎样实现在最后一个页面关闭时将session清空的。
先谢谢了。
在登录系统后,验证成功后,就会创建一个新的会话,属于登录者的会话—session,
前提是你的打开forms验证后,在你退出页面或系统后,关闭页面就会关闭当前会话,这样你即使用url去登录,它会首先会验证你的session,你没有登录也就是说没有session,是不合法的。就会自动转到登录界面。
是否启用forms、默认的登陆界面、登录后的主页面都是在配置文件中配置的。
<authentication mode="Forms">
<forms loginUrl="~/Default.aspx" defaultUrl="LoginIn.aspx" protection="None" timeout="216000" path="/" cookieless="UseCookies" name=".AUXBLOGENGINE"></forms>
</authentication>
FormsAuthentication.RedirectFromLoginPage(modelUser.TrueName, false);
定义个基类, 在page_unload中写进清除session, session里记录有几个页面应用到的session,当是最后一个页面的时候就清掉
关闭所有的浏览器窗口,session就米有了,就清除了。
而天涯的应该是cookie的实现,不是基于session的。so可以继续登录。
自己也可以用asp.net写一写。
我也不太明白 期待答案
用session吧,浏览器关闭完了好像就清除完了。
cookie在浏览器关闭的时候不会清除。
要不然你在页面的卸载事件里面加一段清除session的代码?就向有的页面会提示你:“确认要离开当前页面吗?”
具体的实现你百度一下吧。我也不是很清楚了。仅仅提供一个思路。
我记得<body>中有个onunload()事件,在关闭浏览器时触发,你可以写个删除session或cookie的js函数,onunload()时触发。