项目中遇到个问题。项目是的网络结构是终端+主机 +server;客户都是通过终端登录主机,然后用主机的浏览器访问页面。在终端登录主机时不保证用不同的windows用户。而我在页面安全验证的时候采用的是 form认证,Identity name 属性中存放userid,这时候出现了问题。因为是终端模式。如果两个终端用户用相同的windows账户登录主机,然后再登录我的系统中时。先登录的用户的cookie被后登录的用户覆盖。然后,,系统的数据就张冠李戴了,先登录的用户操作的数据在记录UserId的时候记录的都是后登录用户的ID。
困扰了好久。用Session?还是有别的好办法。如果方便请指教一下。
我的邮箱:kimi.dev@gmail.com
多谢.....
可以采用用户ID跟页面一起走的方法,在页面上放一个隐藏文本框存放。各个页面跳转需要传递这个文本框的值。
你的问题就简化成在一台电脑上,要登陆多个用户并行操作!
可以通过url方式:
如:http://用户名.xxx.com
或:http://www.xxx.com/用户名///
或:http://IP/用户名/xxx
等方式传递
其它方式再想想
我的想法是:在第一个用户成功登陆之后,立即将登陆的用户的账号给锁定点,不让有人利用该账号继续登陆系统中去。
希望对你有帮助。
建议在你的用户数据库表中加一个用户状态字段,但用户登陆后进行更改该状态置为在线状态,哪么其他人想用这个用户名登陆的话就提示该用户名已经登录,这样子就可以解决掉你说的问题。同时你需要注意一点就是该用户退出系统后必须要要把该用户的状态改回来。
另外如果你能获取到终端登陆用户的IP的话,我想这也是个不错的办法,就是使用终端机器的IP作为你cookie中的一部分。然后进行辨别。