首先在WebApplication1项目下添加一个SessionMgr类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public static class SessionMgr
{
privatestatic IDictionary<string, IDictionary<string, object>>data = new Dictionary<string, IDictionary<string, object>>();
//读
public static IDictionary<string, object>GetSession(string ID)
{
if(data.ContainsKey(ID)) //如果data中存在你要找的这个ID
{
returndata[ID];
}
else
{
IDictionary<string, object>session = new Dictionary<string, object>();//如果data中不存在你要找的这个sessionID,那我就帮你建一个。
data.Add(ID, session);
returnsession;
}
}
//写
public static voidSetSession(string key, IDictionary<string, object>value)
{
if(!data.ContainsKey(key)) //如果data中不存在key
data.Add(key, value); //将你经过SetSession方法传过来的参数以键值对的形式写入到data中。
else
data[key] = value;
}
}
}
**********************************************************************************************************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protectedvoid Page_Load(objectsender, EventArgs e)
{
//首先去Cookie里面去取一下它的sessionId
if(Request.Cookies["MysessionId"] ==null) //如果Cookie里面没有MysessionId,就给它分配一个。
{
stringsessionId = Guid.NewGuid().ToString();
Response.SetCookie(new HttpCookie("MysessionId",sessionId)); //这样就把我给它分配的sessionId给他写到Cookie里面去了
}
}
//设置Session
protectedvoid Button1_Click(objectsender, EventArgs e)
{
stringsessionId = Request.Cookies["MysessionId"].Value;//从Cookie中取到了这个MysessionId的值.比给他赋给sessionId;
IDictionary<string, object>session = SessionMgr.GetSession(sessionId);//从服务器端 SessionMgr类中取出和客户端相关联的sessionId
//session["服务器端的数据"] = 33333; //向和这个客户端关联的服务器端内存中添加键值对数据
//session["我想怎么设就怎么设"] = "88888";
Dictionary<string, object>val = new Dictionary<string, object>();
val.Add("test","123");
SessionMgr.SetSession("test", val);
Response.Write("设置成功");
}
//读取Session
protectedvoid Button2_Click(objectsender, EventArgs e)
{
//stringsessionId = Request.Cookies["MysessionId"].Value; //从Cookie中取到了这个MysessionId的值.比给他赋给sessionId;
//IDictionary<string,object> session = SessionMgr.GetSession(sessionId);//从服务器端 SessionMgr类中取出和客户端相关联的sessionId
//Button2.Text=Convert.ToString(session["服务器端的数据"]) + session["我想怎么设就怎么设"];
IDictionary<string,object> A= SessionMgr.GetSession("abc");
Button1.Text = A["abc"].ToString();
}
}
}