首页 > 代码库 > Session的原理解释
Session的原理解释
创建一个项目Session,在项目下面添加一个类 SessionMgr 添加一个WebForm1.aspx
SessionMgr 类
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Sesson { public class SessonMgr { //其实 Session就是内存中的Dictionary,只不过它是一个特殊的Dictionary,它的value值也是一个Dictionary ,它是用来存session数据的: private static Dictionary<string, Dictionary<string, object>> data = http://www.mamicode.com/new Dictionary>();>
WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sesson.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <p> <%-- 设置session--%> <asp:Button ID="Button1" runat="server" Text="设置session" OnClick="Button1_Click" /> <%--获取session--%> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="获取session" OnClick="Button2_Click" /> <%-- 这个button用来弹出目目前浏览器里有哪些Cookie,他们的值是什么。--%> <input type="button" value=http://www.mamicode.com/"Test" onclick="alert(document.cookie);" />>WebForm1.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Sesson { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //首先检查一下我的Cookies里面有没有一条叫做MySession的Cookie,如果没有,就将设置一个 if (Request.Cookies["MySession"] == null) { string sessionID = Guid.NewGuid().ToString(); //设置Cookie Response.SetCookie(new HttpCookie("MySession", sessionID));//设置一个名字为:MySession的Cookie,它的值设定为sessionID /* HttpCookie mycookie = new HttpCookie("abc"); //设置一个名字叫"abc"的cookie ,它的值是下面三个dictionary<string,string> mycookie.Values.Add("a", "111"); mycookie.Values.Add("b", "222"); Response.SetCookie(mycookie); */ } } //设置Session protected void Button1_Click(object sender, EventArgs e) { //首先,我先在Cookies里取一下名字为MySession的Cookie。这个Cookie其实就是Sesson的一个key。取得这个Sesson的key之后,我就调用SessonMgr.GetSession(sessionID)这个方法。 string sessionID = Request.Cookies["MySession"].Value; //SessonMgr.GetSession(sessionID);这个方法就是创建一个key为MySession,值为Dictionary<string,object>的 Dictionary;然后给它的值返回回来。 Dictionary<string,object> session= SessonMgr.GetSession(sessionID); session["Name"] = "张三"; //或者这样写: session.Add("Name", "张三"); session["Age"] = "26"; //或者这样写: session.Add("Age", "26"); session["Gender"] = "男"; //或者这样写: session.Add("Gender", "男"); } //获取Session protected void Button2_Click(object sender, EventArgs e) { string sessionID = Request.Cookies["MySession"].Value; Dictionary<string,object> session= SessonMgr.GetSession(sessionID); TextBox2.Text = session["Name"].ToString() + session["Age"].ToString() + session["Gender"].ToString(); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。