注册 登录
编程论坛 ASP技术论坛

asp 怎么把 在线的人 踢掉?

gesongs 发布于 2012-05-16 16:34, 413 次点击
如题所示  怎么把 在线的人 踢掉?
能 赋 语句吗?
7 回复
#2
wangjy5002012-05-16 21:07
做不到
#3
sac精灵2012-06-04 20:14
貌似不能
#4
kangli_kl2012-06-05 15:19
在线用户是用账户管理的吗?用账户的话可以在开发程序的时候设置帐户禁用标志来阻止账户登录,要不是账户管理的话就没啥办法了
#5
coretear2012-06-06 09:07
可以踢掉,但是要看你系统框架 如果用 session 的话 可以 在数据库里建立一个踢人表,用户登录新的页面的时候 判断这个踢人表里有没有 这个人 有就kick删除用户session和踢人表指定用户就可以
#6
coretear2012-06-06 09:13
给你简单写下,要自己完善

踢人表
----------------
table
user   flag
用户1  kick
用户2  null
--------

Set Rs = Server.Createobject("adodb.recordset")
Sql="select * from table Where flag = 'kick' user = '"&用户1&"'"
Rs.Open Sql,Conn,1,1
If not Rs.Bof Or not Rs.Eof Then
    Session.Abandon()
    Response.write "你被kick了!!!!"
    这里在写一个语句更新 flag 为null ok
End If
#7
coretear2012-06-06 09:18
这个 如果通用点 就写成

Sql="select * from table Where flag = 'kick' user = '"&session("用户1")&"'"
#8
wumingchenxi2012-06-06 10:45
在Asp用户登录网站的过程,就是一个新Session的产生并存在过程。
普通用户A登录站点,产生Asession.
管理员B登录站点,产生Bsession.
B如果想剔除A,必须找到Asession并干掉Asession,这样A在跳转页面时(重新访问服务器),找不到自我Session的特定内容,就被转到登录页面。

这个时候需要有两个要求,1。找Asession,系统一般不允许访问他人的Session, 这个可以在Session_start中把在线Session,以及loginid都记录下来,添加到Application["sessionList"],Application["loginidList"]中去。然后管理员B 可以访问Application["loginidList"],找到ALogin,对应到Asession,然后破坏掉Asession中的内容,比如session["loginid"],之类的。
2。在每一个页面中都要有在线判断,session["loginid"] 是否存在,不存在或则值为空,就跳转到登陆页面。


以上想法没有经过实践,或可一试。属于在线时踢人,
离线后拒绝登录,就可以用楼上的数据表了。
1