当一个用户已登入了,当其再登入时则不让其登入,如何判断?
如题 问题点数:20、回复次数:26Top
1 楼Lukiya(路基亚)回复于 2006-02-22 17:50:50 得分 1
if (Request.IsAuthenticated)
{
}Top
2 楼huazi4995(華仔)回复于 2006-02-22 18:07:28 得分 0
能否具体点啊!我只是把用户登入ID存在SESSIONTop
3 楼tipboy(想做技术边缘人)回复于 2006-02-22 18:09:11 得分 1
登陆的时候把application(用户名)=lock
验证的时候看是否为lock
在globle文件里onsessionend 把这个用户的application删除Top
4 楼wanger_cn(梦回童年)回复于 2006-02-22 18:28:12 得分 1
你可以在登录的时候把用户名存在Session["XXX"]中,
如果他再次登录的时候你就判断一下,
if (Session["XXX"] == 用户名.Text)
{
Response.write("<script language='javascript'>alert('你已经登录了,不能重复登录!');</script>");
}
else
{
...
}Top
5 楼sky_cp()回复于 2006-02-22 18:51:22 得分 1
在page_load中加入判断session的语句
if(session[ID]=="User_id")
{
response.write("...");
}
else
{
response.redirect("login.aspx");
}Top
6 楼WYZSC(007,重在参乎,说错问错勿怪。)回复于 2006-02-22 18:55:43 得分 1
if (Session["关键字"] != null)
{
//用户已登录
return; //不做后面的登录处理
}
Top
7 楼lw7210(风中邪神)回复于 2006-02-22 19:24:58 得分 1
用Session好像不行的,要是别人换台机子不就进去了Top
8 楼DMPX(星矢)回复于 2006-02-22 19:33:05 得分 1
新建一个表,记录用户登录ID,当用户登录时记录其ID,每次登录的时候判断这个表,如果存在这个ID就不让其登录,如果不存在这个ID,就让登录.Top
9 楼jnywxxb()回复于 2006-02-22 21:12:06 得分 1
在数据库的用户表中创建一个是否登陆标志,如果登陆为1,不登陆为0
在登陆的时候进行判断Top
10 楼hustsay23(越平淡越好)回复于 2006-02-22 21:31:36 得分 1
可以设个数据库,一个账户登录后将其账户名,登陆时间,IP地址信息记录下来
这个账户每次请求服务器时更新登陆时间,保持最新状态,如果其他人用这个账户
登陆,将先看数据库有没有该账户,如果有的话当登录时间与这次登陆时间之差在某个
时间内就不让其登陆,如果过了某个时间差则允许登陆
如果我做的话我会按照这个思路做。方法应该很多的。Top
11 楼WeekZero(∮小气的鬼∮)回复于 2006-02-22 21:40:15 得分 1
是单点登录问题吧,参照这个
http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168Top
12 楼bingeng(大眼镜)回复于 2006-02-22 22:12:30 得分 1
感觉还是在onsessionend中处理比较好 把用户列表放在 arrayList 或者 用户名 IP地址 作为一个键值对放在一个HashTable中维护这个列表就可以
判断不同IP的同一个用户名就拒绝。Top
13 楼heyafeng(何桠枫)回复于 2006-02-22 22:22:51 得分 1
在用户信息中设置一个登陆得标志, 登陆为1,没登陆为0
当成功登陆,设置标准为1
然后在session_end中设标志为0
不知道这样有没有bugTop
14 楼cansum396(漆黑的夜)回复于 2006-02-22 22:48:47 得分 0
makeTop
15 楼huazi4995(華仔)回复于 2006-02-23 09:14:18 得分 0
改表好象不太好吧,因为表都已经建好了,那不又要去和经理商量啊。最好是不要改表的好哦,希望大家多给点意见,小弟好多参考参考啊。
tipboy() :有没有什么具体的代码啊?能否贴出来给大家学习学习啊Top
16 楼szh3210(/+/=〆)回复于 2006-02-23 10:53:05 得分 0
markTop
17 楼XLIANG2020(敌营18年)回复于 2006-02-23 11:29:55 得分 0
帮忙markTop
18 楼luojianfeng(原来我不傻!)回复于 2006-02-23 12:02:59 得分 0
顶Top
19 楼foxflyhigher(雪狐--路漫漫其修远兮,吾将上下而求索!)回复于 2006-02-23 16:07:15 得分 1
可以用Application来维护吧Top
20 楼ZEROLAST(品位时间)回复于 2006-02-23 16:12:26 得分 1
这个问题方法很多的Top
21 楼qwerttyy(今天也要快乐!)(每天回十帖)回复于 2006-02-23 16:25:23 得分 1
记录IP,然后将请求IP不符合的转向到登陆页。
就像QQ那种做法一样。Top
22 楼BeRush(艾威)回复于 2006-02-23 17:10:27 得分 1
应该在服务器端存个登入信息,既然不能改表,那就用xml存储。
<logined>
<user>XXXX</user>
<logined>
XXXX为用户名~
Top
23 楼zhouxiaotan(夜雨悠扬)回复于 2006-02-23 17:28:41 得分 1
弄个文件什么的,应该是可以的,对已经登陆的用户设置标志位,在登陆的时候,判断就可以了Top
24 楼sandsboy(竹子)回复于 2006-02-23 17:40:13 得分 1
建个类(类似ArrayList,但要求是单例的),专门维护登录用户的信息,登录时检查类实例中是否含有此用户,如果有,则不能登录。成功登录后将其加入到类实例中。当然退出后也要移除此用户。Top
25 楼lwn19820725(叶男)回复于 2006-02-23 21:45:49 得分 1
在session中注册一个标志性的东西,如果登陆成功,则改变session状态,如下:
如果初次登陆或登陆不成功session("isLogin")=False;
session("isLogin")=True;
推出登陆session("isLogin")=False;
每次登陆时判断session("isLogin")即可.Top
26 楼benben5721(银翼天使)回复于 2006-03-03 13:28:25 得分 1
在登陆表中记录登陆为0,未登陆为1,那如果用户未正常退出,数据库中记录的就是登陆状况,如果用户再次登陆后,通过判断这个标志岂不是永远也登录不了了么?
"可以设个数据库,一个账户登录后将其账户名,登陆时间,IP地址信息记录下来
这个账户每次请求服务器时更新登陆时间,保持最新状态,如果其他人用这个账户
登陆,将先看数据库有没有该账户,如果有的话当登录时间与这次登陆时间之差在某个
时间内就不让其登陆,如果过了某个时间差则允许登陆"这个方案会很耗资源吗?
有具体代码能贴出来看看么?
Top




