Asp.net中防止用户多次登录的方法
在web开发时,有的系统要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要报错。
常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有session共有的,整个web应用程序唯一的一个对象):
以下是引用片段: |
当然这里使用Cache等保存也可以。
接下来就是要在用户退出的时候将此用户从Application中去除,我们可以在Global.asax的session_End事件中处理:
以下是引用片段: |
这些都没有问题,有问题的就是当用户直接点浏览器右上角的关闭按钮时就有问题了。因为直接关闭的话,并不会立即触发session过期事件,也就是关闭浏览器后再来登录就登不进去了。
这里有两种处理方式:
1、使用Javascript方式
在每一个页面中加入一段Javascript代码:
以下是引用片段: |
由于onbeforeunload方法在浏览器关闭、刷新、页面调转等情况下都会被执行,所以需要判断是点击了关闭按钮或是按下Alt+F4时才执行真正的关闭操作。
然后在logout.aspx的Page_Load中写和session_End相同的方法,同时在logout.aspx中加入事件:οnlοad="Javascript:window.close()"
但是这样还是有问题,Javascript在不同的浏览器中可能有不同的行为,还有就是当通过文件->关闭时没有判断到。
2、使用XMLhttp方法(这种方法测试下来没有问题)
在每个页面中加入如下的javascript(这些Javascript也可以写在共通里,每个页面引入就可以了)
以下是引用片段: |
在web.config中设置
以下是引用片段: |
test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:
以下是引用片段: |
保证不使用缓存,每次都能调用到这个页面。
原理就是:设置Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后session也会过期。这样就可以满足要求了。
转载于:https://www.cnblogs.com/zwl12549/archive/2008/02/16/1070785.html
Asp.net中防止用户多次登录的方法相关推荐
- ASP.NET中常用的文件上传下载方法
ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...
- Oracle数据库中scott用户不存在的解决方法
Oracle数据库中scott用户不存在的解决方法 参考文章: (1)Oracle数据库中scott用户不存在的解决方法 (2)https://www.cnblogs.com/hjweifans/p/ ...
- ASP.NET中在线用户统计
天极论坛 统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单 ...
- linux强制用户改密码,如何在Linux中强制用户在下次登录时更改密码?
由于安全方面的考虑,系统中的用户需要定期更新其密码.在本文中,我们将看到如何强制用户下次登录系统时更改其密码. 列出用户 首先让我们看一下系统中可用的用户.$ cut -d: -f1 /etc/pas ...
- asp.net 调用html页面,ASP.NET中HTML页面的访问验证设置方法
可能有很多朋友和我一样不会留意到这样的问题,在ASP.NET中,使用其自身提供的访问验证功能(表单验证.Passport 验证.Windows 验证),并不会对静态文件(如 html.图像文件.文本文 ...
- 搜集《ASP.NET中常用的26个优化性能方法》
1. 数据库访问性能优化 a.数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接 ...
- Asp.NET中常用的一些优化性能的方法
ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能. 1:不要使用不必要的session 和ASP中一样,在不必要 ...
- .NET技术 ASP.NET中常用的文件上传下载方法(多文件上传)
文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务器 3.转换成二进制字节流保存到数据库以 ...
- ASP.NET中常用的26个优化性能方法(转)
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
最新文章
- 环境搭建之八-- node.js, npm和yarn
- 汽车之家APP口碑--参数分析
- Android官方培训课程中文版
- Asp.net生成缩略图
- 动态添加行 为元素解绑事件 delegate的解绑事件 off的解绑事件
- webpack中实现按需加载
- 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
- 打开网页出现运行脚本错误的解决技巧
- 简单理解下内存的几大区域
- Hadoop上传和下载大存储的HIVE表
- mac使用jeb记录
- mysql var和varp的区别_var方差(var和方差的区别)
- C++ requires a type specifier for all declarations
- 如何将多个excel合并成一个
- 初中物理浮力教学思考推荐
- WebBowser 实现淘宝网自动登录
- 人机对话是怎么产生的?
- 微信小程序实战教程-闫涛-专题视频课程
- 计算机应用技术专业的大学生职业生涯规划书,计算机应用专业大学生职业生涯规划书范文...
- Unity3D 之 学习路线与学习经验分享