ASP.NET中如何实现同一时间只有一人能够修改系统数据
2006-06-07 14:08
721 查看
有些特殊的系统中,要求同一时间,只能有一个人能够修改系统数据,这时其他人修改数据时,处于“锁”的状态,只有修改数据的人退出时其他人才可进行修改操作。
我们通过设置一个全局开关变量(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变量解锁
这个问题在一些其他的应用中也同样存在,例如网站的实时在线用户列表
我们通过设置一个全局开关变量(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变量解锁
这个问题在一些其他的应用中也同样存在,例如网站的实时在线用户列表
相关文章推荐
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- ASP.NET实现增删改查等功能(Access版)系统之二-GridView绑定数据.
- (原创)在 ASP.NET 中,如何巧用 HttpModule ,以实现系统全局登录逻辑判断,高手慎入
- 如何实现ASP.Net系统的中英文版
- 用户权限设计 ASP.NET系统用户权限设计与实现、用户认证管理设计方案、通用数据权限管理系统设计
- 讲解如何让 ASP.NET 实现获取xxxxxx rank值的代码数据
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- 在ASP.NET中如何在DataGrid中实现数据嵌套显示
- 高级别问题:如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持
- 如何在ASP.NET MVC中实现提交若干个某模型的数据(某Model的List或ICollection,大小不定)
- ASP.NET实现增删改查等功能(Access版)系统之六-导出数据到EXCEL
- VB.NET 如何实现强制修改系统时间
- 如何在ASP.NET实现数据图表
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- ASP.NET实现增删改查等功能(Access版)系统之六-导出数据到EXCEL
- ASP.NET GridView 直接进行数据的修改和分页的实现
- [ASP.NET教程] C#中如何实现数据拖动?(拖动图片,到TextBox,并显示)
- 在asp.net中如何用LinkBtutton按钮实现安全退出,并保存当前页面数据与数据库中
- 如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持[转载]
- 如何同一时间一个帐号只有一个用户使用?(asp.net)