我的需求是:某系统用户在当前的电脑登录后,若在其他电脑上登录该用户名时,则原先的电脑上出现“在其他地方登录的提示!”。就是类型QQ登录的功能。请各高手指导,这个要怎么实现。如果涉及数据库的话,是sql数据库。
asp
用户
登录
用户登录
qq
------解决方案--------------------
很简单,登录时存入Application或数据库 用户名-session.sessionId,键值对
以后每次操作都去查用户名的sessionId是不是和当前的session.sessionId一至,不一至就提示在别的地方登录。
------解决方案--------------------
1、每次登陆都会给session或数据库赋值
2、每次操作都去检查两个值是否一致,如果不一致,就下线
------解决方案--------------------
登陆的成功时候用application记录当前会话id,并且用session记录用户名
session("username")="用户名"
application("用户名")=session.sessionid
访问需要验证的页面增加判断session是否存在和sessionid是否一致的判断
if session("username")="" or application(session("username"))<>session.sessionid then
response.write "未登陆或者用户名已经在其他地方登陆过!!"
response.end
end if
------解决方案--------------------
要实时提示就需要用计时器不停的请求一个动态页判断application中存储的sessionid和当前会话id是否一致了
checksession.asp
<%
if session("username")="" or application(session("username"))<>session.sessionid then
response.write "error"
response.end
end if
%>
<script src="http://www.coding123.net/js/jquery.js"></script>
<script>
setInterval(function () {
$.ajax({
url: 'checkdession.asp',
cache: false,
dataType: 'text',
success: function (d) {
if (d == 'error') {
alert('登陆超时或者用户名已经在其他地方登陆过!');
window.location = 'login.asp';
}
},
error: function (xhr) {
alert('动态页有问题\n' + xhr.responseText);