ASP.NET中如何实现同一时间只有一人能够修改系统数据

转载 2006年06月07日 14:08:00

有些特殊的系统中,要求同一时间,只能有一个人能够修改系统数据,这时其他人修改数据时,处于“锁”的状态,只有修改数据的人退出时其他人才可进行修改操作。

我们通过设置一个全局开关变量(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('LogOut.aspx','','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变量解锁

这个问题在一些其他的应用中也同样存在,例如网站的实时在线用户列表

相关文章推荐

一个帐号同一时间只能一人登录

对于一个帐号在同一时间只能一个人登录,可以通过下面的方法实现: 1 .在用户登录时,把用户添加到一个ArrayList中 2 .再次登录时查看ArrayList中有没有该用户,如果Arra...

利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆(修改)

转自using System;using System.Collections.Generic;using System.Data;using System.Configuration;using S...

怎样实现同一个账户同一时间只能在一个终端登录

不少系统都希望实现同一个账户同一时间只能在一个地方登录,如腾讯QQ,当你的账户在另一个终端登录后,之前正在登录访问的终端会被强制下线,这样做的好处我认为有两点:1)能提高系统/网站的安全性,比如说如果...

java实现同一账号同一时间只能在一个地方登录(QQ登录效果)

虽然像百度,CSDN等这些网站都没有这样做,当然也没有必要这要这样做。 但是在我们做企业内部应用的时候有时候可能会要求我们这样做(同一账号在统一时间只能在一个登录),最近研究了下现在写出来大家分享下...

Asp.net中实现同一用户名不能同时登录(单点登录)

Asp.net中实现同一用户名不能同时登录(单点登录) 最近找了一些单点登录的,发现了这篇文章,貌似还是可以实现的,先保存了。 Web 项目中经常遇到的问题就是同一用户名多次登录的问题,相...

Asp.net同一页面内容分页实现

方法一:Js分页

Asp.net中实现同一用户名不能同时登陆(单点登陆)

Web 项目中经常遇到的问题就是同一用户名多次登陆的问题,相应的解决办法也很多,总结起来不外乎这几种解决办法:将登陆后的用户名放到数据库表中;登陆后的用户名放到Session中;登陆后的用户名放到Ap...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)