本例完成的功能就是防止用户重复登录!若用户已经登录,则当其再次登录时,弹出提示框后返回!
实现思路:
用户登录成功后,将用户登录信息存放到Hashtable类型的Application["Online"]里面,其键值为SessionID,其Value值为用户ID;当用户注销时,调用Session.Abandon;在Global.asax里面的SessionEnd事件中,将用户ID从Hashtable中删除;在用户访问页面时,察看Hashtable中是否有对应的用户ID如果没有则判断用户不在线(用户不在线的原因可能是按了注销按钮、网页超时等)
1、公用类中判断用户是否在线的函数(供用户调用)
Code
Code
Code
Code
实现思路:
用户登录成功后,将用户登录信息存放到Hashtable类型的Application["Online"]里面,其键值为SessionID,其Value值为用户ID;当用户注销时,调用Session.Abandon;在Global.asax里面的SessionEnd事件中,将用户ID从Hashtable中删除;在用户访问页面时,察看Hashtable中是否有对应的用户ID如果没有则判断用户不在线(用户不在线的原因可能是按了注销按钮、网页超时等)
1、公用类中判断用户是否在线的函数(供用户调用)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
2、用户登录事件处理:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
3、在Global.asax中的Session_End事件:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
4、在每一个页面需要刷新的地方,调用如下代码:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
深入思考:
由本例的解决方法可以加以延伸,比如,在存储UserID的时候,将UserID+客户端IP地址一起存进去,则在将相应信息取出来分析的时候,可以做到:当用户在不同的计算机上先后登录的时候,则允许最近一次的登录,而将之前的登录删除!等等等等