Asp.Net HttpApplication请求管道与Session(二)
Asp.Net 回话的创建与结束
LogHelper.LogHelper _log = new LogHelper.LogHelper();
/// <summary>
/// 程序开始----隐藏事件
/// </summary>
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
_log.WriteLine("程序开始");
}
/// <summary>
/// 程序结束----隐藏事件
/// </summary>
protected void Application_End()
{
_log.WriteLine("程序结束");
}
/// <summary>
/// 回话开始----隐藏事件
/// 当用户指定浏览器第一次访问网站 创建 ASP.NET_SessionId 回话开始,
/// 当用户关闭浏览器,再次使用相同浏览器访问网站,重新创建 ASP.NET_SessionId 新的回话开始
/// </summary>
protected void Session_Start()
{
_log.WriteLine("回话开始,count=" + Session.Count + ",回话ID:" + Session.SessionID);
StringBuilder builder = new StringBuilder();
foreach (string item in Session.Keys)
{
string line = string.Format("---{0}:{1}", item, Session[item]);
builder.AppendLine(line);
}
_log.WriteLine(builder.ToString());
}
/// <summary>
/// 回话结束----隐藏事件
/// 当程序结束,清除服务器所有的回话ID,每个回话ID的删除都会触发该事件
/// 在同一个回话ID中,只能访问当前回话中创建的Session 数据
/// </summary>
protected void Session_End()
{
_log.WriteLine("回话结束,count=" + Session.Count + ",回话ID:" + Session.SessionID);
StringBuilder builder = new StringBuilder();
foreach (string item in Session.Keys)
{
string line = string.Format("---{0}:{1}", item, Session[item]);
builder.AppendLine(line);
}
_log.WriteLine(builder.ToString());
}
1.第一次打开浏览器访问

2.添加Session数据后访问

3.关闭浏览器,再次打开访问

4.步骤跟踪

注:
1.只要当前浏览器的进程没有结束,Asp.Net SessionID的值就不会改变。
2.或者服务器端SessionID过期
3.特别说明,在Asp.Net 应用中需要HttpAppliaction的Session_Start、Session_End 方法才会启用Session状态,否则每次请求的Session状态自动过期,也就是下一次请求都是新的。
4.不同进程的Asp.Net SessionID是不相同的,也就是不同域名的SessionID不相同,如下:


更多:
Asp.Net HttpApplication请求管道与Session(一)
Asp.Net HttpApplication请求管道与Session(二)的更多相关文章
- Asp.Net HttpApplication请求管道与Session(一)
1.请求处理顺序执行事件 /********************请求处理顺序执行事件**********************/ /// <summary> /// 请求入站 /// ...
- ASP.NET MVC5请求管道和生命周期
请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModule和IHttpHandler.所有的HTTP请求都会进入IHttpHandl ...
- asp.net的请求管道事件
一.引言 上篇介绍了Http的请求过程提到了在请求进入到创建完 HttpApplication 对象后,将进入一系列的处理事件Event,那么这些事件具体都有哪些呢,这篇文章就来简要阐述一下. 二.正 ...
- Asp.Net 拦截请求自定义处理
需求: 在Aps.Net 应用中,对于浏览器请求的部分url的地址自定义处理,不交给路由系统或页面. 解决方案: 在全局文件Global.asax中 ,提供Application_BeginReque ...
- ASP.NET网页请求以及处理全过程(反编译工具查看源代码)
本文是自己查看源码后的个人总结,不保证其准确性.大家可作为参考. 浏览器和服务器之间的通信. 当敲一个域名到浏览器上面,然后回车的时候,如:http://www.baidu.com/index.asp ...
- 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建
前言 中间件(Middleware)对于Asp.NetCore项目来说,不能说重要,而是不能缺少,因为Asp.NetCore的请求管道就是通过一系列的中间件组成的:在服务器接收到请求之后,请求会经过请 ...
- 13、ASP.NET MVC入门到精通——MVC请求管道
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 ASP.NET MVC的请求管道和ASP.NET请求管道基本上一模一样,如果你对ASP.NET请求管道十分熟悉的话,你只要关注一下不同点.看 ...
- ASP.NET MVC5 的请求管道和运行生命周期
https://www.jianshu.com/p/848fda7f79e0 请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModu ...
- ASP.NET MVC入门到精通——MVC请求管道
https://www.cnblogs.com/jiekzou/p/4896315.html 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 ASP.NET MVC的请求管道和ASP.NE ...
随机推荐
- java文件io过滤器
package cn.stat.p1.file; import java.io.File; public class newfilelist { /** * @param args */ public ...
- hdu 5188
it's a dp difficult problem 试想如果我们遇见这样一道题,: 有n道题目,每道题有一个得分v和用时t: 我们要得够w分:用时最少 怎么做?? 这是一个裸奔的01背包 如 ...
- 小巧实用的数字加减插件(jquery插件)
2015-12-04 近期项目需要,我将插件更新了,增加了两个参数,一个参数控制文本框是否支持输入,另一个参数则是新增了一个回调函数,返回文本框内的值.另外对代码局部重构了,优化了一下封装,需要的朋友 ...
- 教训 Mac下装windows系统 失败后 磁盘空间丢失
本来Mac上装的是win10 最近老提示快过期了 想到月底就要停止免费更新了 决定装一下win8 然后升级到win10 因为之前有过装win10的经验 所以很轻松 进入Mac 先到bootcamp 取 ...
- oracle分配角色和表空间
注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存 ...
- Swift—静态属性- 备
我先来设计一个类:有一个Account(银行账户)类,假设它有3个属性:amount(账户金额).interestRate(利率)和owner(账户名). 在这3个属性中,amount和owner会因 ...
- JQuery的插件
最近需要修改ftl文件,使用一般的freemarker插件不能有效处理里边的部分JQuery内容,所以特地下载了一个Spket插件, 地址为 http://www.agpad.com/update 再 ...
- iptables 顺序
-A INPUT -s 115.236.6.6/32 -p udp -m udp --dport 111 -j ACCEPT -A INPUT -s 10.175.197.98/32 -p udp - ...
- cp 提示 overwrite 问题
cp 提示 overwrite 问题 copy -f 文件的时候仍然提示覆盖问题,很诧异,咨询SA,果然 cp -i 强制要求覆盖文件的时候确认,-f 也不起作用,大大的不爽[root@erpappd ...
- mysql if对数据进行处理 having对数据进行查询 thinkphp中的exp支持更复杂的where查询
很多时候,数据库获取的信息并不是我们最终想要的,需要通过if进行处理. where支持查询 having支持后查询(查询后的数据,再筛选) 代码如下: if ($this->_post('dos ...