1.这个是后来的登陆不了。 在Application_start()中: 2. 本例完成的功能就是防止用户重复登录!若用户已经 登录,则当其再次登录时,弹出提示框后返回! 实现思路:用户登录成功后,将用户登录信息存放到 Hashtable类型的Application["Online"]里面,其键 值为SessionID,其Value值为用户ID;当用户注销时 ,调用Session.Abandon;在Global.asax里面的 SessionEnd事件中,将用户ID从Hashtable中删除;在 用户访问页面时,察看Hashtable中是否有对应的用户 ID如果没有则判断用户不在线(用户不在线的原因可 能是按了注销按钮、网页超时等) 1、公用类中判断用户是否在线的函数(供用户调用) strUserID,Hashtable h) //继续判断是否该用户已经登陆 //判断哈希表中是否有该用户 0) 2、用户登录事件处理: System.Web.UI.ImageClickEventArgs e) if(MyUtility.AmIOnline(CurUser.UserID, (Hashtable)Application["Online"])) 能重复登录!"); CurUser.LoginPsw = FormsAuthentication.HashPasswordForStoringInCon figFile(this.password.Text.Trim(),"SHA1"); switch(ii) Application["Online"]中 Session["UserID"] = CurUser.UserID; 3、在Global.asax中的Session_End事件: EventArgs e) if(h[Session.SessionID]!=null) Application["Online"]=h; 4、在每一个页面需要刷新的地方,调用如下代码: ["UserID"].ToString(),(Hashtable)Application ["OnLine"])) ("<script>parent.document.location.href='Login. aspx';</script>"); ////有框架时用 用 ("<script>parent.document.location.href='Login. aspx';</script>"); ////有框架时所用 用 深入思考: UserID的时候,将UserID+客户端IP地址一起存进去, 则在将相应信息取出来分析的时候,可以做到:当用 户在不同的计算机上先后登录的时候,则允许最近一 次的登录,而将之前的登录删除!等等等等 如何判断用户是否登陆?
|
如何防止用户重复登陆
如何防止用户重复登陆