模拟Session原理
程序员文章站
2022-06-10 16:37:20
session是保存在服务器端的,关于用户个人信息的一个小容器!用来保存每一个用户的关键信息!每个用户访问时候,都会创建一个sessionid,这个sessionid会保存到的cookie中。服务器...
session是保存在服务器端的,关于用户个人信息的一个小容器!用来保存每一个用户的关键信息!每个用户访问时候,都会创建一个sessionid,这个sessionid会保存到的cookie中。服务器根据sessionid关联到此浏览器的用户。
那么我先建一个sessionmanager类,用来管理session
管理session的类
public class sessinmanager
{ //模拟asp.net的session原理!
private static idictionary<string, idictionary<string, object>> data = new dictionary<string, idictionary<string, object>>();
public static idictionary<string, object> getsession(string sessionid)
{
if (data.containskey(sessionid)) //此id是与浏览器密切相关的,基本上一个浏览器就一个sessionid
{ //一般保存在浏览器的cookie中。
return data[sessionid];
}
else
{
idictionary<string, object> session = new dictionary<string, object>();
data[sessionid] = session; //以传过来的sessionid创建一个dictionary。
return session;
}
}
}
然后在用户访问的时候产生sessionid,创建session空间。
设置,读取session
protected void page_load(object sender, eventargs e)
{
if (request.cookies["mysessionid"] == null) //在网站主页(入口)设置sessionid。
{
string sessionid = guid.newguid().tostring(); //随机产生一个id,并保存到cookie中。
response.setcookie(new httpcookie("mysessionid",sessionid));
}
}
protected void setsession_click(object sender, eventargs e)
{
string sessionid=request.cookies["mysessionid"].value; //从cookie中读取sessionid
idictionary<string, object> session = sessinmanager.getsession(sessionid);
//根据cookie中保存的sessionid访问服务端的开辟的内存空间。
session["usermessage"] = "小小鸟"
相关文章
- asp文件上传原理分析及实现实例
- 实现web中的@虚拟域名系统(原理篇)
- asp 验证码的程序及原理
- 怎样写你自己的email组件(原理)
- asp.net core 中文文档 第三章 原
- asp.net core 中文文档 第三章 原
图文推荐
- 文章
- 推荐
- · java webservice入门实例
- ·
- ·
- · nhibernate 一对一关系映射(主键映射)
- · java学习笔记(十九)——java 日志记
- ·
- ·
- ·
- ·
- ·
- ·
- ·
- ·
- ·
- ·
- ·
- 点击排行
上一篇: 荔湾首个政务智能机器人 将会说粤语英语
下一篇: 娃娃鱼机器人新奇:可以行走、攀爬和游泳