session,会话,指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。

A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。当用户访问web服务器,则被分配一个sessionID,会话结束或超时时自动释放。没有存储类型限制,存储大小只受内存限制。

设置页的代码:

protected void Button1_Click(object sender, EventArgs e)
{
Session["txt1"] = (TextBox1.Text == "") ? "空字符串" : TextBox1.Text;
}
protected void Button2_Click(object sender, EventArgs e)
{
string[] str = TextBox2.Text.Split(',');
Session["txt2"] = str;
}
protected void Button3_Click(object sender, EventArgs e)
{
Session["cal"] = Calendar1;
}
protected void Button4_Click(object sender, EventArgs e)
{
Session.Add("txt1", "");
}
protected void Button5_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}

目标页:

 protected void Page_Load(object sender, EventArgs e)
{
if(Session["txt1"]!=null)
{ Label1.Text = Session["txt1"].ToString(); }
else
{ Label1.Text = "session为null"; } if(Session["txt2"]!=null )
{ string[] str = (string[])Session["txt2"];
for (int i = ; i < str.Length; i++)
Label2.Text += str[i] + "\n";
} if(Session["cal"]!=null)
{
Calendar cal = (Calendar)Session["cal"];
Label3.Text = cal.SelectedDate.ToShortDateString();
} if (Session["txt1"] != null)
{ Label4.Text = Session["txt1"].ToString(); }
else
{ Label4.Text = "session为null"; }
}

添加重名的session后,会将原来的session覆盖。

创建session有两种方式:Session["txt1"]=“xxxx”和Session.Add("txt1", "234345");

在获取session时,返回的是一个object对象,因此要注意显示转换类型。

清除某一个session:session.remove("keyName");

清除所有的session:Session.Abandon();

注意,如果是在按钮中清除session,那么由页面的生命周期可以知道,pageload事件中仍能读取到清除之前的session值,如果想得到清除之后的值,就需要在清除之后,再一次获取页面response.redirect(当前url);

 protected void Button5_Click(object sender, EventArgs e)
{
Session["userName"] = TextBox1.Text;
Response.Redirect("Default2.aspx");
}

目标页面:

 protected void Page_Load(object sender, EventArgs e)
{
if (Session["userName"] == null)
Response.Redirect("Default.aspx");
else
Label1.Text += Session["userName"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session.Remove("userName");
Response.Redirect("Default2.aspx");//这里也可以回到登陆页面
}

asp.net session的原理的更多相关文章

  1. ASP.NET Session的实现原理分析

    ASP.NET Session的实现原理分析 用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也就是说只要Coo ...

  2. ASP.NET Session原理及处理方法

    session是怎么存储,提取的 1.在服务器端有一个session池,用来存储每个用户提交session中的数据,Session对于每一个客户端(或者说浏览器实例)是“人手一份”,用户首次与Web服 ...

  3. ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)

    ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...

  4. ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节

    https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...

  5. ASP.NET Session丢失的情况

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...

  6. ASP.NET Session丢失的解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...

  7. ASP.NET Session丢失问题原因及解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...

  8. ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界

    HttpContext是ASP.NET中的核心对象,每一个请求都会创建一个对应的HttpContext对象,我们的应用程序便是通过HttpContext对象来获取请求信息,最终生成响应,写回到Http ...

  9. ASP.NET Session 简单超实用使用总结

    一.概述 Session用于存储特定的用户会话所需的信息 . Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议. Session中文是“会话”的意思,在ASP.NE ...

随机推荐

  1. Kolor Neutralhazer v1.0.2 (照片雾气模糊去除过滤器)+破解RI

    由于空气污染.阴霾几天越来越,根据照片始终是一个灰色,怎么做?有了这个插件.能够解除您的烦恼. Neutralhazer这是消除你的风景照片和雾气模糊的全景图的有效途径photoshop小工具. wa ...

  2. ZendStudio快捷键 注释的快捷键

    注:本文省略“通用快捷键”描述,诸如:ctrl+N=新建,ctrl+O=打开,ctrl+C=复制,ctrl+V,ctrl+X……等等几乎所有软件都通用的一组快捷键,而着重介绍zde独有的快捷键,了解并 ...

  3. Paxos算法深入分析

    在分布式系统设计领域,Paxos可谓是最重要一致性的算法.Google的大牛们称   All working protocols for asynchronous consensus we have ...

  4. Input输入字体颜色改变js(兼容IE)

    从网上找的代码,自己封装了一下(前提:引用jQuery库) 方法1: HTML: <div class="box"> <div class="ipt1& ...

  5. PHP学习笔记十【数组】

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/h ...

  6. AFNetworking自我总结

    AFNetworking 简介 目前国内开发网络应用使用最多的第三方框架 是专为 Mac OS & iOS 设计的一套网络框架 对 NSURLConnection 和 NSURLSession ...

  7. python 2.6升级到2.7

    CentOS 6.5上安装的python版本是2.6.6,不能满足我运行软件的要求,所以对python进行升级. 原以为这也就是安装个软件的事儿,在我求稳搜索一下了之后发现,也并不是那么单纯简单. 下 ...

  8. Android应用截图嵌入到真实设备

    Device Art Generator 你可以使用 Device Art Generator 方便快捷地将应用截图嵌入到真实设备的效果图中.这样,当用户在你的网站上或其他宣传材料中看到你的应用截图时 ...

  9. 详解如何在linuxmint上用源码包安装nodejs

    第一步:安装依赖包   因为Linuxmint 和 Ubuntu 同属 Debian系的Linux,而且Linuxmint是建立在Ubuntu的基础上的,所以Ubuntu下的命令和包,Linuxmin ...

  10. source install MacPorts--checking for Tcl configuration... configure: error: Can't find Tcl configuration definitions

    If you installed MacPorts using the package installer, skip this section. To install MacPorts from t ...