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

解决方案 »

  1.   

    用Session表示用户在线,关闭浏览器后Session失效,用户就离线了
      

  2.   

    可以用session id,首次每次登錄都把這個session id寫倒數據庫,如果現在的session id,不同,則強制退出。這樣就保證唯一登錄了。
      

  3.   

    session_start,session_end事件关闭浏览器时会激发session_end事件.
      

  4.   

    请问Visitor,是引用什么using指令?
      

  5.   

    可以序列化进数据库的,在sessin丢失后,重新加载当前站点,又一次生成了个序列化sessionID。
      

  6.   

    http://dotnet.aspx.cc/article/cf5ffabc-cfe1-4368-3c13-9b4fcd7c7168/read.aspx
      

  7.   

    net_lover(【孟子E章】) :
    你说的这个地址我看了的,上面什么都没有,你那里留得有的话,谢谢,麻烦发来看看,拜托了
      

  8.   

    http://dotnet.chinaitlab.com/ASPNET/715236.html希望这个对你有点用!
      

  9.   

    tiantian1980(天天) :
    你说的这个方法我试过了也不行啊
      

  10.   

    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;
      

  11.   

    net_lover(【孟子E章】) 给个地址没有用啊,如果还有的话肯定是正确的答案了
    哎,命苦啊
      

  12.   

    这有什么好烦恼的,
    用Cookies做.
    很简单.
      

  13.   

    cengyidao(曾一刀) ;
    高手觉得简单不妨指点一下小弟
      

  14.   

    用Ajax技术在document的unload事件里写个脚本往服务器发送一条消息,就可以了,我有做个一个聊天室的例子就是这样做的!
      

  15.   

    我觉得这个问题当中有两点不好掌握:
    1,第一个登录的用户直接关闭了IE,而不是正常LOGOUT,那么服务器端的SESSION 仍然存活但却无法感知,所以当这个用户在SESSION未过期再次LOGIN的时候,需要准确识别。
    2,第二个试图用已在服务器端产生SESSION 的用户登录的时候,需要验证cokie 是否产生了变化。但觉得就是第一个问题需要考虑的多一些,就是说当这个用户关闭了IE再次打开时,应该在COOKIE中携带某一恒定值提供检测,而这个值又是随机产生的,就可以解决这个问题了。
      

  16.   

    FormsAuthentication.SetAuthCookie 就已经解决了问题
      

  17.   

    退出时调用一个js函数。js 函数里写一个弹出窗口
    window.open("userLeave.aspx",0,0,1500,1500)设置打开的页面宽高都为0,且不在屏幕区域内,
    userLeave.aspx里面写更新数据库的语句,完成之后自动关闭本身页面
      

  18.   

    用用户ID和SessionID一起限制看看session_start  的时候比较看看是否有相同IDsession_end    根据SessionID清除记录
      

  19.   

    用Session_start跟session_end这两个事件可以解决的我以前做一个财务系统的时候就是这么做的。不过你要控制Session超时的时间。
    默认的是20分钟。如果你关闭浏览器之后只有在20分钟之后才能再次登陆
    不过这个方法还是要在数据库里面加字段
    具体用。NET代码实现的还没研究出来。。
      

  20.   

    可用ajax 实现,在javascript的unload事件里加一段操作应该就可以。
      

  21.   

    http://community.csdn.net/Expert/topic/4779/4779551.xml?temp=.3655359
      

  22.   

    人不多时,可把每个人ID 加入Application 或 Cache中,退出时移除,登录时比较