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 事件汇总

ASP.NET的Application简介1

Asp.Net HttpApplication请求管道与Session(二)的更多相关文章

  1. Asp.Net HttpApplication请求管道与Session(一)

    1.请求处理顺序执行事件 /********************请求处理顺序执行事件**********************/ /// <summary> /// 请求入站 /// ...

  2. ASP.NET MVC5请求管道和生命周期

    请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModule和IHttpHandler.所有的HTTP请求都会进入IHttpHandl ...

  3. asp.net的请求管道事件

    一.引言 上篇介绍了Http的请求过程提到了在请求进入到创建完 HttpApplication 对象后,将进入一系列的处理事件Event,那么这些事件具体都有哪些呢,这篇文章就来简要阐述一下. 二.正 ...

  4. Asp.Net 拦截请求自定义处理

    需求: 在Aps.Net 应用中,对于浏览器请求的部分url的地址自定义处理,不交给路由系统或页面. 解决方案: 在全局文件Global.asax中 ,提供Application_BeginReque ...

  5. ASP.NET网页请求以及处理全过程(反编译工具查看源代码)

    本文是自己查看源码后的个人总结,不保证其准确性.大家可作为参考. 浏览器和服务器之间的通信. 当敲一个域名到浏览器上面,然后回车的时候,如:http://www.baidu.com/index.asp ...

  6. 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建

    前言 中间件(Middleware)对于Asp.NetCore项目来说,不能说重要,而是不能缺少,因为Asp.NetCore的请求管道就是通过一系列的中间件组成的:在服务器接收到请求之后,请求会经过请 ...

  7. 13、ASP.NET MVC入门到精通——MVC请求管道

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 ASP.NET MVC的请求管道和ASP.NET请求管道基本上一模一样,如果你对ASP.NET请求管道十分熟悉的话,你只要关注一下不同点.看 ...

  8. ASP.NET MVC5 的请求管道和运行生命周期

    https://www.jianshu.com/p/848fda7f79e0 请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModu ...

  9. ASP.NET MVC入门到精通——MVC请求管道

    https://www.cnblogs.com/jiekzou/p/4896315.html 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 ASP.NET MVC的请求管道和ASP.NE ...

随机推荐

  1. java文件io过滤器

    package cn.stat.p1.file; import java.io.File; public class newfilelist { /** * @param args */ public ...

  2. hdu 5188

    it's a  dp  difficult problem 试想如果我们遇见这样一道题,: 有n道题目,每道题有一个得分v和用时t: 我们要得够w分:用时最少  怎么做?? 这是一个裸奔的01背包 如 ...

  3. 小巧实用的数字加减插件(jquery插件)

    2015-12-04 近期项目需要,我将插件更新了,增加了两个参数,一个参数控制文本框是否支持输入,另一个参数则是新增了一个回调函数,返回文本框内的值.另外对代码局部重构了,优化了一下封装,需要的朋友 ...

  4. 教训 Mac下装windows系统 失败后 磁盘空间丢失

    本来Mac上装的是win10 最近老提示快过期了 想到月底就要停止免费更新了 决定装一下win8 然后升级到win10 因为之前有过装win10的经验 所以很轻松 进入Mac 先到bootcamp 取 ...

  5. oracle分配角色和表空间

    注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存 ...

  6. Swift—静态属性- 备

    我先来设计一个类:有一个Account(银行账户)类,假设它有3个属性:amount(账户金额).interestRate(利率)和owner(账户名). 在这3个属性中,amount和owner会因 ...

  7. JQuery的插件

    最近需要修改ftl文件,使用一般的freemarker插件不能有效处理里边的部分JQuery内容,所以特地下载了一个Spket插件, 地址为 http://www.agpad.com/update 再 ...

  8. 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 - ...

  9. cp 提示 overwrite 问题

    cp 提示 overwrite 问题 copy -f 文件的时候仍然提示覆盖问题,很诧异,咨询SA,果然 cp -i 强制要求覆盖文件的时候确认,-f 也不起作用,大大的不爽[root@erpappd ...

  10. mysql if对数据进行处理 having对数据进行查询 thinkphp中的exp支持更复杂的where查询

    很多时候,数据库获取的信息并不是我们最终想要的,需要通过if进行处理. where支持查询 having支持后查询(查询后的数据,再筛选) 代码如下: if ($this->_post('dos ...