在网页设计中如何限制一个用户在多个地方同时登陆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在网页设计中如何限制一个用户在多个地方同时登陆相关的知识,希望对你有一定的参考价值。
现我的网站是采用aspx.net及sqlserver的框架.
现想通过程序限制一个用户在多个地方同时登陆,
也就是说有一个用户在A电脑登陆了网页.就再也不容许这一个用户在B电脑登陆我们的网页.
能回答出来的,重谢!!!!
在每个页面中加入如下的javascript(这些javascript也可以写在共通里,每个页面引入就可以了)
var x=0;
function myRefresh()
var httpRequest = new ActiveXObject("microsoft.xmlhttp");
httpRequest.open("GET", "test.aspx", false);
httpRequest.send(null);
x++;
if(x<60) //60次,也就是Session真正的过期时间是30分钟
setTimeout("myRefresh()",30*1000); //30秒
myRefresh();
在web.config中设置
<sessionState mode="InProc" timeout="1"></sessionState>
test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:
Response.Expires = -1;
保证不使用缓存,每次都能调用到这个页面。
原理就是:设置Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后Session也会过期。这样就可以满足要求了。 参考技术A 我是做ASP的,你可以参考一下我的代码
login.asp:<%if request.Form.count>0 then session("username")=request("username")application(session("username"))=session.SessionIDresponse.Redirect("index.asp")end if%><form method=post action=""><input type="text" name="username"><input type="submit"></form>其他需要认证的页面index.asp:<%if application(session("username"))=session.SessionID thenresponse.Write("已经登陆")elseresponse.Write("没有登陆")end if%> 参考技术B 验证IP 你可以设置登陆后的cookie与当前电脑关联,不允许不同IP登陆就OK了
参考资料:http://www.dgszg.com
参考技术C 登录以后改变用户表里面的一个判断字段.在index.aspx中加入一段验证的代码,判断登录的用户名是否等于该字段如何限制ssh用户同时登陆的数量
参考技术A看这个文件/etc/security/limits.conf,可能不同发行版的路径不一样。
加一行:
* hard maxsyslogins 1010代表限制10人,自行更改。
使用说明其实已经在该配置文件的注释中写得很清楚了,根据自己需要进行配置。
以上是关于在网页设计中如何限制一个用户在多个地方同时登陆的主要内容,如果未能解决你的问题,请参考以下文章