如何禁止同一个用户名同时在两个进程登陆?

h235h3h 2006-05-31 05:45:20
用C#做的一个web application,需要用用户名口令登陆,如何能够防止用同一个用户名同时在两台电脑登陆系统。

如果用session的话,如果客户端登陆后直接关掉IE,session不会马上被清除,所以,可能在5分钟或者10分钟之内,该用户又无法重新登陆,如何解决这一问题?

还有,如果是smart client结构的应用,又如何解决呢?谢谢
...全文
319 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
h235h3h 2006-06-04
  • 打赏
  • 举报
回复
to hsgzs(雾尘心)
其实,你的说法是对的,关键问题就在于如何能够在退出的时候确保去清除数据库里面的标记。

如果正常点一个按钮退出,那是可以做到的,如果用户之间叉掉IE,如何去清除该记录呢?如果清除不了,那么用户下次就无法登陆了

再次重申,session在关闭IE的时候不会马上清除的,有个timeout的时间差。而且,我试了一下,只有使用“InProc”的session模式时,才会出发session_end事件,而我使用的是“StateServer”模式的session,不能触发session_end事件。
kaowa 2006-06-01
  • 打赏
  • 举报
回复
mark
ferrari1231 2006-06-01
  • 打赏
  • 举报
回复
学习...
jrl5365 2006-06-01
  • 打赏
  • 举报
回复
application 就这个全局变量不可以吗?在IE关的同时那个SEESSION也清除
anthit 2006-06-01
  • 打赏
  • 举报
回复
顶 学习
hsgzs 2006-06-01
  • 打赏
  • 举报
回复
登陆时,在数据库里记录用户名和ip,退出时标记为退出,用另外一台机器的话,判断一下就行了
int64 2006-06-01
  • 打赏
  • 举报
回复
好像是用application可以,没有具体代码
binapex 2006-06-01
  • 打赏
  • 举报
回复
在Session_End事件中清除Session或者对相应值赋空值
h235h3h 2006-06-01
  • 打赏
  • 举报
回复
上面的网页我看过了,存在我说得关于session的问题:

如果用session的话,如果客户端登陆后直接关掉IE,session不会马上被清除,所以,可能在5分钟或者10分钟之内,该用户又无法重新登陆,如何解决这一问题?
Firestone2003 2006-05-31
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧