Http状态的传递和保存 之 ASP.NET内置Session

13 篇文章 0 订阅

Session是存放在服务器端的。


登录页面:

public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 从客户端请求中获取用户名和密码
            string strUserName = Request["username"];
            string strPwd = Request["password"];

            if (!string.IsNullOrEmpty(strUserName) && !string.IsNullOrEmpty(strPwd))
            {
                LoginInfo lInfo = new LoginInfo(strUserName, strPwd);
                // 将值写入到Session。
                Session.Add("Session_lInfo", lInfo);
                Response.Redirect("PostForm.aspx");
            }
        }
    }

跳转页面:

public partial class PostForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 从Session中获取值。
            object obj = Session["Session_lInfo"];
            if (obj != null)
            {
                // 获取到Session对应的值
                LoginInfo lInfo = (LoginInfo)obj;
                Response.Write("您的登录名是:" + lInfo.UserName + "登录密码:" + lInfo.Password);
            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }
    }


但实际上Session的原理也是在客户端存储一个Cookie,

然后根据这个Cookie查询服务器端存储的值。

就跟前一篇自己实现服务器端Cookie的原理是一样的。

Session是依赖于客户端Cookie的。

借助于Cookie机制,可以让我们在服务器端存储数据,这就是Session的原理。

如下图:

将一个值写入到Session,就会在客户端存储一个名称为ASP.NET_SessionId的Cookie。

客户端浏览器在请求服务器时,也会把这一个名称为ASP.NET_SessionId的Cookie发送到服务器端,

服务器端就会去内存中查找这个Cookie对应的值。



Session有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,
则Session会定时销毁。这也就是为什么一段时间不操作页面,系统会自动退出的原因。
可以 通过Session.Timeout设置Session超时范围。


一般处理程序中使用Session,必须实现System.Web.SessionState.IRequiresSessionState接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值