Session 一直都在使用 也没有发现过什么异常 今天一个程序 需要在Session_End() 事件中 发现异常故查找资料并做了以下测试:
前提是 :
在 Web.config 中将 sessionstate 模式设置为 “InProc” 时, 才会触发Session_End 事件
在程序页面中使用Session:
System.Web.HttpContext.Current.Session["user_id"] = UserID
在.cs 页面中获取的方法为
public static int GetLoginUserID()
{
// 未登录
if (System.Web.HttpContext.Current.Session["user_id"] != null)
{
return Convert.ToInt32(System.Web.HttpContext.Current.Session["user_id"]);
}
else{
return -1;
}
}
在Global.ascx 文件中Session_End() 事件中调用
protected void Session_End(object sender, EventArgs e)
{
string userid= this.Session["user_id"].ToString();
string CSUserid = GetLoginUserID();
}
在页面中已经为Session["user_id"]赋过值
System.Web.HttpContext.Current.Session["user_id"]=123;
但是执行结果为 userid等于123 但是CSUserid则报错(该对象在上下文中无效)
结论:在Cs文件中只能通过访问System.Web.HttpContext.Current.Session[name]来获取Session值(一家之言 不知道是否有别的方法可以获取到Session并能被global文件所调取,如有异议,欢迎斧正啊) 可是在Global文件中无法访问到System.Web.HttpContext命名空间 当然那些页面级的命名空间也无法访问了 比如最常用的Response ,Request。this.Session["user_id"]这样就直接可以获取到值
在做一点补充啊:
在做这个测试过程中也用到了Session_Start事件 它与Session_End
当一个网站的所有Session变量全部过期 Session_End 事件触发 Session_Start 则是该网站内如果所有的Session全部过期活着根本没有Session变量时当第一个Session变量建立时触发Session_Start事件 (只有在建立第一个时才触发啊) 如果有多个则之后的Session变量创建都不会触发Session_Start事件
分享到:
相关推荐
ASP.NET 中 Session 实现原理浅析 如 session的说明 使用等等
ASP.NET中简单的Session、Application、Cookie的小例子
欧柏泰克:asp.net中session的用法
详解ASP.NET中Session的用法_.docx
ASP.NET的 Session 详解
在ASP.NET应用程序运行期内.不同客户的会话状态记录 可使用ASP.NET的内置对象session在服务器进行保存.本文阐 述了session不同模式的特性及具体配置方法.
主要介绍了ASP.NET中Session和Cache的区别总结,本文结合使用经验,总结出了5点Session缓存和Cache缓存的区别,需要的朋友可以参考下
在后台应用程序中设置:Session.Timeout = 1; 注意:1、此方法可以设置在一个公共的页面中,然后直接调用即可。 2、时间是以分钟为单位的 方法二: 在Web.config中设置: 在<system></system>中写入...
当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一...
在asp.net中使用session常见问题集锦
几种判断asp.net中session过期方法的比较,需要的朋友可以参考一下
详细介绍.net 项目session存入mysql数据库,有完整demo 参考地址: http://www.codeproject.com/Articles/633199/Using-MySQL-Session-State-Provider-for-ASP-NET
比较学习ASP.net中的Session、ViewState、Application、Cookies
本资源是用session实现的一个购物车,是用链表和session实现的购物车,希望对您有所帮助
Session是一种Web会话中的常用状态之一,Session提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义对象,本文将详细介绍asp.net中session的原理及应用,需要的朋友可以参考下
内容很简单 简单到只告诉你怎么操作来实现 方便大家学习
asp.net简单会话(session)应用,可以对会话机制有个大概的了解
proxy.CookieContainer存储了客户端的 ASP.NET_SessionId。这样以后每次通过webservice 方法调用时,都会将ASP.NET_SessionId传递到服务器端。