CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

一个用户登录问题,急哦!!!

楼主liuyong320324(漂流人)2004-08-04 16:46:08 在 Web 开发 / ASP 提问

当一个用户用自己的用户名登录到一个社区的同时,别人在用这个用户名就无法登录,这种功能怎样实现。在这先谢了。 问题点数:50、回复次数:17Top

1 楼josney(梦凌风)回复于 2004-08-04 16:50:05 得分 5

用一个字段online记住就可以了,1为在线,0为不在线,默认为0,登录后更新为1,这样别人要登录时你就判断一下就OK了Top

2 楼wsdzmhongm(丁丁)回复于 2004-08-04 16:52:09 得分 0

有这么简单吗?Top

3 楼liuyong320324(漂流人)回复于 2004-08-04 16:57:05 得分 0

当关闭浏览器,怎样把这个标记置为0啊Top

4 楼uhopenet(冰火)回复于 2004-08-04 16:58:43 得分 0

josney(梦凌风)   :  
  那你怎么判断用户是否离线了呢Top

5 楼josney(梦凌风)回复于 2004-08-04 17:00:22 得分 0

如果online=0那就是离线了吗?Top

6 楼satans18((何畏)(只要你过得比我好))回复于 2004-08-04 17:00:40 得分 5

这个问题已经被讨论很多次了~~  
  好像还没有什么很完美的解决的方法Top

7 楼uhopenet(冰火)回复于 2004-08-04 17:01:14 得分 5

关闭浏览器时还好解决,你只要在BODY里利用ONUNLOAD事件调用另一个置0的程序就可以了,但是如果是断电就麻烦了,没有请求啊,下次就没法登陆了Top

8 楼liuyong320324(漂流人)回复于 2004-08-04 17:09:35 得分 0

那么这个问题能不能解决啊。Top

9 楼ycted(长城万里今犹在,不见当年秦始皇!)回复于 2004-08-04 17:20:19 得分 10

这个问题我到现在都还没有最好的解决方法.我的方法是:登陆记1,如果再次登陆,第一次输入正确后是提醒有人使用,第二次就是把现在登陆的人踢出来,(也就类似在线自救的方法)  
   
  原来到是有人问过这个问题.但我觉得还是有弊端.下面我把想法贴出来.  
   
  在我们开发商务软件的时候,常常会遇到这样的一个问题:怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门,更是要限制用户以其工号身份多次登入。  
   
                  可能会有人说在用户信息表中加一字段判断用户工号登录的状态,登录后写1,退出时写0,且登录时判断其标志位是否为1,如是则不让该用户工号登录。但是这样那势必会带来新的问题:如发生象断电之类不可预知的现象,系统是非正常退出,无法将标志位置为0,那么下次以该用户工号登录则不可登入,这该怎么办呢?  
   
                  或许我们可以换一下思路:有什么东西是在connection断开后可以被系统自动回收的呢?对了,SQL   Server的临时表具备这个特性!但是我们这里的这种情况不能用局部临时表,因为局部临时表对于每一个connection来说都是一个独立的对象,因此只能用全局临时表来达到我们的目的。  
   
                  好了,情况已经明朗话了,我们可以写一个象下面这样简单的存储过程:  
   
     
   
  create   procedure   gp_findtemptable   --   2001/10/26   21:36   zhuzhichao   in   nanjing  
   
  /*   寻找以操作员工号命名的全局临时表  
   
    *   如无则将out参数置为0并创建该表,如有则将out参数置为1    
   
    *   在connection断开连接后,全局临时表会被SQL   Server自动回收  
   
  *   如发生断电之类的意外,全局临时表虽然还存在于tempdb中,但是已经失去活性  
   
  *   用object_id函数去判断时会认为其不存在.  
   
    */  
   
  @v_userid   varchar(6),   --   操作员工号  
   
  @i_out   int   out   --   输出参数   0:没有登录   1:已经登录  
   
  as  
   
  declare   @v_sql   varchar(100)  
   
  if   object_id('tempdb.dbo.##'+@v_userid)   is   null  
  begin  
   
                  set   @v_sql   =   'create   table   ##'+@v_userid+'(userid   varchar(6))'  
   
                  exec   (@v_sql)  
   
                  set   @i_out   =   0  
   
  end  
   
  else  
   
                  set   @i_out   =   1  
   
     
   
                  在这个过程中,我们看到如果以用户工号命名的全局临时表不存在时过程会去创建一张并把out参数置为0,如果已经存在则将out参数置为1。  
   
                  这样,我们在我们的应用程序中调用该过程时,如果取得的out参数为1时,我们可以毫不客气地跳出一个message告诉用户说”对不起,此工号正被使用!”Top

10 楼begbear(小乞丐熊)回复于 2004-08-04 17:24:51 得分 5

那還不如用一個application變量來判斷是否斷電或意外終止。﹖Top

11 楼liuyong320324(漂流人)回复于 2004-08-04 17:57:31 得分 0

我用access,不是sql。那怎么办?Top

12 楼xiaofanku(发扬中国博大的无术精神)回复于 2004-08-04 18:07:56 得分 0

我也是这么作的!  
   
   
    不过我设了在线的时间!当用户在指定的时间内无响应就锁注帐号了!  
   
  要作一个解锁的网页!  
   
  我在用户的表中加了一个是/否的字段  
   
  登陆时为-1,关闭是为0Top

13 楼weige250(桂电weige)回复于 2004-08-04 18:50:26 得分 0

upTop

14 楼aiguo25(青春无悔)回复于 2004-08-04 19:50:02 得分 5

ding  
  QQ也有这样的功能Top

15 楼hrstudy(小马)回复于 2004-08-04 20:02:36 得分 10

看看可否实现你的功能:  
  http://redftp.vicp.net/bbs/dispbbs.asp?boardID=45&ID=1947&page=1Top

16 楼hacker18(高手,终于逮到你了!)回复于 2004-08-05 03:44:53 得分 5

'查询数据库  
  ……  
  if   not   rs.eof   then  
          if   rs("online")=1   then  
                    response.write   "用户已登录,系统拒绝再次登录。"  
                    response.end  
          end   if  
  end   if  
   
  若发生二人(或者是三人、四人……)同时登录、其中一人断线等特殊情况,上述代码可能会失效。Top

17 楼wangjinmin1982(:(从asp-到jsp:))回复于 2004-08-05 08:31:53 得分 0

关注最佳解决方案,听听各位的高见,我以前从没想过这个问题Top

相关问题

  • 用户登录?
  • 用户 'JX\ASPNET' 登录失败。 急!!!!!
  • oracle 用户登录?
  • 请教关于NT用户登录的编程问题!难!急!
  • 关于一个用户登录后注销的问题!!!急!!!!!!!!!!!!!
  • 急!谁有用户登录的VB.NET源代码呀!
  • 限制唯一用户登录,非常急
  • 关于用户登录
  • 用户登录哪错了?
  • 登录用户问题

关键词

  • 用户
  • 字段
  • 解决
  • sql
  • 工号
  • 登录
  • 临时表
  • 全局临时表
  • 参数
  • 断电

得分解答快速导航

  • 帖主:liuyong320324
  • josney
  • satans18
  • uhopenet
  • ycted
  • begbear
  • aiguo25
  • hrstudy
  • hacker18

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo