ASP.NET中如何实现同一时间只有一人能够修改系统数据
来源:互联网 发布:win8网络初始化失败 编辑:程序博客网 时间:2024/06/05 10:27
有些特殊的系统中,要求同一时间,只能有一个人能够修改系统数据,这时其他人修改数据时,处于“锁”的状态,只有修改数据的人退出时其他人才可进行修改操作。
我们通过设置一个全局开关变量(Application),当第一个用户修改数据时,将该变量至为一个表示锁状态的值(例如LOCK),其他用户要修改数据前,检查是否能够修改,通常一下几种情况将该修改权释放(将变量置为UNLOCK)
1.修改数据的用户退出系统
2.修改数据的用户长时间不操作
3.修改数据的用户关闭IE
第一种情况,我们可以通过用户点击“退出”按钮时处理;
第二种情况,用户长时间不操作我们可在Session_End事件中处理,具体这个时间长度可以在web.config中设置
(Session_end事件的触发条件,Session.Abandon()或长时间未操作都能够触发该事件)
第三种情况,用户关闭IE,如果不处理这种情况,其实并不是Application对象永远处于锁的状态,IE关闭后Session_End事件依然能够触发,也就是系统将一直等到Session_End事件触发时才能释放该资源,但是这样不是很好,如果触发Session_End事件的时间是1小时...此种情况我们可以在页面中下入Javascript,当用户关闭页面时,跳转到一个处理退出的页面,处理完毕后马上自动关闭。
function window_onunload() {
{
if (event.clientX < 0 && event.clientY < 0)
window.open('29140.html','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=2000,left=2000,width=0,height=0');
}
我们在LogOut.aspx页面中将Application变量解锁
这个问题在一些其他的应用中也同样存在,例如网站的实时在线用户列表
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- Unix线程,互斥量,确保同一时间只有一个线程访问数据
- 如何同一时间一个帐号只有一个用户使用
- 如何同一时间一个帐号只有一个用户使用
- 如何同一时间一个帐号只有一个用户使用
- asp.net中如何取得系统参数
- asp.net中如何导出数据
- jquery配合.NET实现点击指定绑定数据并且能够一键下载
- ASP.NET中实现DataGrid数据排序
- ASP.NET页面中实现数据柱状图
- 在ASP.NET中如何在DataGrid中实现数据嵌套显示
- asp.net中如何实现验证码
- ASP.NET中如何实现负载均衡
- ASP.NET中如何实现负载均衡
- "Microsoft will acquire my company"
- weblucene安装指南
- 面向服务的分析与设计原理
- 啃骨头……
- Toward a pattern language for Service-Oriented Architecture and Integration
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- 孩子成长过程中的七大需要
- Toward a pattern language for Service-Oriented Architecture and Integration, Part 2: Service composition
- 6. 当事人权限
- Microsoft .NET 中的简化加密
- 一个简单实用的字符串加密解密类
- 深入分析dwr中的DWRUtil.$
- 怎么在网站中绝对定位?
- 感谢我们小组的指导老师王劲!!!!