日期:2014-05-19  浏览次数:20479 次

限制同一用户名重复登陆的问题,在线等。。。
我用的是VS2003,C#
我本来是想在数据库中的用户表里多申明一个字段来表示用户是否上线的,但是当用户直接关闭浏览器时,就无法对数据库进行操作
希望各位高手帮帮新手,有其他办法的希望能给个例子,问题解决马上结贴。

------解决方案--------------------
在浏览器关闭事件里面里面进行数据库操作,修改当前状态。

------解决方案--------------------
可以用session id,首次每次登錄都把這個session id寫倒數據庫,如果現在的session id,不同,則強制退出。這樣就保證唯一登錄了。
------解决方案--------------------
session_start,session_end事件关闭浏览器时会激发session_end事件.
------解决方案--------------------
这个单点登录问题一直没有好的解决办法
------解决方案--------------------
可以序列化进数据库的,在sessin丢失后,重新加载当前站点,又一次生成了个序列化sessionID。
------解决方案--------------------
精确解决是有困难,网上相关的方案可以基本实现要求
------解决方案--------------------
http://dotnet.aspx.cc/article/cf5ffabc-cfe1-4368-3c13-9b4fcd7c7168/read.aspx
------解决方案--------------------
http://dotnet.chinaitlab.com/ASPNET/715236.html希望这个对你有点用!
------解决方案--------------------
ASP.NET 2.0中我的解决方法是

设计一个登录的用户控件,登录后设置Context.User为认证,然后登录控件的Visible为false
包含控件的页面直接检查用户是否被认证,关闭浏览器用户立即被退出。

用户控件中登录后
FormsAuthentication.SetAuthCookie(EmailAddress.Text, true);

登录页面
if (Context.User.Identity.IsAuthenticated)
Login.Visible = false;
else
PasswordControl.Visible = false;