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变量解锁

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

限制在同一台电脑上只允许有一个用户登录系统

在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。具体一点就是:     1、在同一台电脑上一次只允许有一个用户登录系统,2、一个用户在同...
  • mmm333zzz
  • mmm333zzz
  • 2013年01月14日 10:25
  • 12072

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

有些特殊的系统中,要求同一时间,只能有一个人能够修改系统数据,这时其他人修改数据时,处于“锁”的状态,只有修改数据的人退出时其他人才可进行修改操作。我们通过设置一个全局开关变量(Application...
  • itblog
  • itblog
  • 2006年06月07日 14:08
  • 1279

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF...
  • s10141303
  • s10141303
  • 2014年06月08日 22:55
  • 5165

java web开发一个帐号同一时间只能一个人登录的功能

我相信很多朋友这方面的代码需求,但是其实这个需求看上去简单,实现起来却比较困难,关键在于浏览器的cookie机制以及用户不通过正常渠道退出,而是直接关闭浏览器时的处理方式。我们的处理方式相信大同小异,...
  • yyd19921214
  • yyd19921214
  • 2015年07月09日 11:08
  • 2390

asp.net 中利用GridView实现增加,修改,删除

1、创建数据库表SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Table1...
  • emailqjc
  • emailqjc
  • 2010年10月31日 12:17
  • 3172

MVC前台+后台 数据验证

MVC数据验证
  • Fanbin168
  • Fanbin168
  • 2015年12月12日 15:12
  • 4330

springMVC+Ibatis 同时访问多数据库

spring mvc +ibatis 配置多数据库
  • t67345
  • t67345
  • 2017年05月18日 16:33
  • 302

如何做到同一个账号同一时段只能登录一个

在许多web项目中,需要禁止用户重复登录。一般来说有两种做法:          一是在用户表中维护一个字段isOnLine(是否在线),用户登录时,设定值为true,用户退出时设定为false...
  • yinbucheng
  • yinbucheng
  • 2017年05月10日 08:08
  • 600

asp.net 学习之路之gridView控件之修改数据

在之前的博文中说过,通过几种方式修改gridview列名汉化显示。 先看看这次博文中,数据库里面的内容把。 这里,再接着上次的博文细说。 上次的博文说道,第一种方式是直接在数...
  • HK_5788
  • HK_5788
  • 2015年07月06日 23:18
  • 2409

如何利用MVC+EF实现前台传值

之前做项目的时候用过三层架构,是一种分层式的软件体系架构。在这个新的项目中,我第一次接触到了MVC也用到了分层的思想,巧的很也是三层的结构,但是二者还是有很大的出处的。 1.MVC和三层区别...
  • u012904383
  • u012904383
  • 2015年12月06日 20:51
  • 2489
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET中如何实现同一时间只有一人能够修改系统数据
举报原因:
原因补充:

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