C#webform用户登录唯一性

沙客 2011-10-09 02:34:37
如何设置不允许同一收银员同时登录不同收银机
如果
在数据库中加个字段的话,当系统非法关闭或者断电的话,字段是不会改变的
...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
品铭工作室 2011-10-09
  • 打赏
  • 举报
回复
补充一下:使用这个方案时,所有的业务状态逻辑不要写Session中,已保存到UserInfo对象中(也中可以是)其它的对象,只要保证这个信息与当前用户的一一对应的就行,一但这些信息创建后就不要二次创建了,要保证这些信息的完整性和唯一性
品铭工作室 2011-10-09
  • 打赏
  • 举报
回复
我之前做了个项目,也需要这样的功能,我是这样处理的:
原则:同一用户再次用别的PC登录时,旧的登录用户将不可用
条件:所有功能页需要继承自己的一个Page,如:UserPage : PageBase : Page ,也就是加载UserPage时需要先加载PageBase, 为什么这样做下面会讲到

做一个键值对列表(全局的) ,看上去象这样: Dictionary< UserID , SessionID >
当用户首次登录时,获取当前用户对象及SessionID , 并向列表中Add一项,当前同一用户再次用别的PC登录时:Dictionary[UserID] = 当前的SessionID,也就是每一个用户只能对应一个SessionID,如果有新的用户登录时以前的SessionID将会被新的SessionID替换
这个时候,旧的Session已没有与UserID关联了,那么有一个问题就是之前已登录的那个仍然可用,如果让它不可用,就需要在PageBase这里写上这样的代码:
if( Dictionary[UserID]!= this.SessionID) //this.Response.Rerect(... , true)跳转到某一页(如登录页)


  • 打赏
  • 举报
回复
计时器定时回发
沙客 2011-10-09
  • 打赏
  • 举报
回复
winform程序无法用session
zjxylc 2011-10-09
  • 打赏
  • 举报
回复
这个问题也遇到过,曾经用session来解决,当用户不操作之后,过段时间释放session,表示用户已经推出。但是存在一个问题,就是在用户非法关闭之后到session释放这短时间内用户是登不上的。不知道有没有好点的方法,坐等楼下大牛解析。

110,499

社区成员

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

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

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