【转】ASP.NET之 关于触发Global.asax Session_End事件的经验
在做asp.net编程开发的时候,我遇见这样的问题,一个用户只能在一台机器上登录,
如果有用户在其他机器上登录,系统将提示该用户已经登录!当前登陆非法!我的做法是: 用Application变量保存已经Login的用户信息,当Session_Start的时候,在Global.asax 文件里写Session_Start事件响应函数,记录登录用户!当用户Logout的时候,在Session_End 事件里,将Application变量中的用户信息做一个休正,即:清除SessionEnd的用户信息。 问题出现了!Session_End无法执行???为什么呢?后来看了几篇文章,做了试验,得出以下 结果,要让Session_End事件响应,需要做以下工作: 首先在web.config文件中需要有以下设置: <sessionState Session_End只在mode="inProc"模式下触发,timeout决定该事件的触发时间, 一般情况下,timeout是指Session失效的时间,我在自己设计的asp.net应用系统中, 使用Form校验方式,不需要Session来判断用户是否登录,所以设置timeout=1分钟, 不会影响正常操作,但是如果用户设计的系统使用Session来保存用户登录信息, 设置timeout=1,那么打开浏览器后,当用户在1分钟内不在该浏览器上进行操作, Session就会失效,这可能导致系统使用的不正常!对于一般用户而言,对着屏幕 看1分钟后,又要重新登陆一次,是个十分恶心的事情! 因此,如果使用Session来保存用户登录信息,建议采用其他方式! 比如在每个Page上做一个onunload事件响应函数,如:oncloseIE(),当浏览器关闭的时候, oncloseIE()执行,在oncloseIE函数里使用ajax方式,调用后台的server端函数,执行 Session.Abandon(); 这样的方法将是最直接,最及时的Session End处理! |
【转】ASP.NET之 关于触发Global.asax Session_End事件的经验相关推荐
- Asp.Net中global.asax文件的描述
global.asax文件的作用: 1.定义Application级别,Session级别的变量,对象和数据: 2.定义在Application中的,基于Application,Session的事件: ...
- global.asax文件的作用
1.Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或HTTP模块所引发的应用程序级别和会话级别事件的代码 2.Global.a ...
- ASP.NET中使用Global.asax文件
转:http://www.cnblogs.com/ly5201314/archive/2008/09/23/1296868.html ASP.NET中使用Global.asax文件 Global.as ...
- 在ASP.NET中使用Global.asax文件
文章关键字:ASP.Net,应用层,模块 概述 Global.asax 位于应用程序根目录下.虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中,但是它实际 ...
- 使用ASP.NET Global.asax 文件
Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...
- Asp.net中Global.asax
Asp.net中Global.asax Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序 ...
- 【ASP.NET】Global.asax与Web.config
背景 在创建网站的项目,总是会看到Web.config这个文件,它是用来干什么的呢?还有咱们自己也可以新建Global.asax文件,它是用来干什么的呢.在我实现一个网页上显示历史访问人数和在线人数的 ...
- ASP.NET Global.asax详解
最近在研究bbsmax的代码,但是一直不知道入口在哪里,然后就对各个文件分析了,然后终于在对global.asax文件查看的时候看到Application_BeginRequest才明白入口,所以现在 ...
- ASP.NET通过Global.asax和Timer定时器定时运行后台代码
ASP.NET通过Global.asax和Timer定时器定时运行后台代码 Global.asax文件 1.Application_Start方法添加 // 在应用程序启动时运行的代码 ...
最新文章
- Axure8.0 网页 or App 鼠标滚动效果
- Training的第六天
- 递推水题 Codeforces Round #289 (Div. 2, ACM ICPC Rules) A. Maximum in Table
- AngularJS自定义表单验证
- java object 比较_Java比较两个对象
- Linux(centos7)安装nginx并配置代理
- 判断出栈序列是否合法(c语言实现)
- ng的link和comepile
- 2020年十大币预测_2020年十大商业智能工具
- mysql 入门 jdbc
- Debian 10(buster) 更换国内软件源
- php动态柱形图,php生成柱状图(统计图)程序
- 登录图片滑动验证实现
- 设计专用黑苹果台式机9代intel平台I59500+微星b360m mortar+蓝宝石rx560
- android studio smail变量值,Android Studio + smalidea进行smail动态调试
- 为什么要进行网站流量分析?从6个方面告诉你答案
- 五种“网络钓鱼”实例解析及防范技巧(转)
- 简单理解网络分层模型--向计算机网络迈一小jio;还会有后续;
- IBM X 345服务器无法从光驱启动配置解决方法——非常规方法
- 计算机图片怎么截图快捷键,电脑截图快捷键四种截屏方式,笔记本电脑如何截屏截图?...
热门文章
- c#Struts框架理念和自制Struts框架下 复杂版
- XML Web Service 安全性
- HD 1159 Common Subsequence (最长公共子序列)
- 使用QSerialport读取串口数据并处理
- 做中间件的这两年总结(201704-201905)
- Vue入门:Vue项目创建及启动
- python day2 python基础 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码...
- OPCDAAuto.dll的C#使用方法浅析(转载)
- Image and video pencil sketch with OpenCV 3.X and CUDA
- C++ GUI Qt4编程(12)-6.1FindFileDialog