Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
楼主: TmXiaOChAo
打印 上一主题 下一主题

asp.net log in判断user account是否正在使用当中

[复制链接]

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

11#
发表于 2012-4-14 09:19 PM |只看该作者
确实, 我不觉得会有个完全好的做法。
我不知道socket 能不能帮到你。

socket 能知道客户端是不是还connect 着。
但是我还没在web 用过。



回复

使用道具 举报

178

主题

0

好友

5358

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

12#
发表于 2012-4-14 09:26 PM |只看该作者
回复 11# 宅男-兜着走


    那你之前是在winform用过吗? 还是哪里呢? 有没有列子可以供我参考呢?


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

13#
发表于 2012-4-14 09:48 PM |只看该作者
回复  宅男-兜着走


    那你之前是在winform用过吗? 还是哪里呢? 有没有列子可以供我参考呢?
TmXiaOChAo 发表于 2012-4-14 09:26 PM



    WPF winform 咯, 然后 socket server compile 成另外个 exe。

   http://www.codeproject.com/Artic ... amming-in-NET-using
   那个时候我的写法跟这个差不多。
   
   我刚才试了 php 的socket, 好像是要访问了那个页面, 不然就是 command line 过去才可以 listen incoming connection。 没理想中的好。


回复

使用道具 举报

178

主题

0

好友

5358

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

14#
发表于 2012-4-14 10:24 PM |只看该作者
回复 13# 宅男-兜着走


    谢谢大大, 会去参考这方面的东西 ^ ^


回复

使用道具 举报

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

15#
发表于 2012-4-14 10:44 PM |只看该作者
我大概说下我的想法:
1. 当用户登录是,user db 里记录用户的cookie session和timeout时间
2. 当用户logoff时,就把cookie session和timeout清楚掉
3. 当另外一个用户登录时,如果user db里的cookie session和timeout时间还没有过,那么就不允许登陆

以上3点又有几个问题存在,那就是
问题1:为什么不能使用ip,而是要使用cookie session?
答:原因是或许用户是在LAN上网,如果使用ip, 同一个LAN不同电脑尝试登陆的话就crash了。

问题2:有些用户使用时间很长,那么timeout怎么办?
解决方法:在每页都写一个function,当用户有使用,就延长timeout时间,也就是idle太久才会timeout

问题3:假设某位用户internet disconnect或没有logout该怎么办?
解决方法:当有用户登录时,先处理user db里面的timeout, 如果Timeout时间过了,那么就把该timeout 和 session删除

==================================
还有另外一种方法,不过不鼓励使用,也就是在Admin page的代码里写一个Script,每一分钟在后台自动提交一个i m active的数据通知服务器,那么只要用户没有把browser关掉,就会一直是login状态,其它用户就永远不能登陆


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

16#
发表于 2012-4-15 12:39 AM |只看该作者
我大概说下我的想法:
1. 当用户登录是,user db 里记录用户的cookie session和timeout时间
2. 当用户log ...
weeming21 发表于 2012-4-14 10:44 PM

问题3:假设某位用户internet disconnect或没有logout该怎么办?
解决方法:当有用户登录时,先处理user db里面的timeout, 如果Timeout时间过了,那么就把该timeout 和 session删除


这个要怎么拿捏? 设置 5 分钟会太短还是太多?

或者是把 ID 放在 cookie 里面。
如果关掉browser 清空cookie 呢?
不知道 js 能不能做到这点。


回复

使用道具 举报

178

主题

0

好友

5358

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

17#
发表于 2012-4-15 12:57 AM |只看该作者
回复 15# weeming21

大大有一个问题想请教你, 如果照你说的set 一个time out给客户, 而我set的,或者在每个page extend的timeout时间是idle是15分钟, 但是如果我一extend了15分钟,user就刚好断线了,那user不是要等15分钟过后才可以登入了..


回复

使用道具 举报

178

主题

0

好友

5358

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

18#
发表于 2012-4-15 12:58 AM |只看该作者
回复 16# 宅男-兜着走


    maybank的是设置几秒大大你知道吗?


回复

使用道具 举报

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

19#
发表于 2012-4-15 01:20 AM |只看该作者
本帖最后由 weeming21 于 2012-4-15 01:27 AM 编辑
这个要怎么拿捏? 设置 5 分钟会太短还是太多?

或者是把 ID 放在 cookie 里面。
如果关掉brow ...
宅男-兜着走 发表于 2012-4-15 12:39 AM


又或者双管齐下:
1. 如我所说,用户有action就延长timeout 30分钟
2. 同时client side也写个js,固定每分钟或更长时间向服务器说I m still alive.

只要出现以下其中一个condition就归纳为logoff:
1. 30分钟没有action
2. 没有接收到alive signal超过特定时间


回复

使用道具 举报

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

20#
发表于 2012-4-15 01:25 AM |只看该作者
回复  weeming21

大大有一个问题想请教你, 如果照你说的set 一个time out给客户, 而我set的,或者在每个 ...
TmXiaOChAo 发表于 2012-4-15 12:57 AM


如果是同一个user, 断线后应该不受影响吧
因为是验证cookie session而不是ip,一直换ip也不影响啊。除非是换电脑或browser的cookie不见去


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-29 01:49 PM , Processed in 0.100612 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部