zoukankan      html  css  js  c++  java
  • C#基础-->cookie和session

    关于cookie和session 

           cookie

               1:一个cookie中可以存放的数据最大在4KB左右

               2:cookie存放于客户端 

               3:cookie分为两种  一种是会话cookie  一种是持久cookie

    会话cookie: 是一种临时的cookie,它记录了用户访问站点时的设置和偏好,关闭浏览器,会话cookie就被删除了

    持久cookie: 存储在硬盘上,(不管浏览器退出,或者电脑重启,持久cookie都存在), 持久cookie有过期时间

          session:      

             1:session存放于服务器端的内存中  session池  

             2:浏览器第一次访问seesion的死后给其赋值 那么session池中创建一个session对象 ,同时产生一个sessionId  以set-cookie               的形式返回给浏览器 ,浏览器将session保存其进程内存中

             3:浏览器下次访问当前网站的任意页面时都会将sessionid发送给服务器 服务器在asp.net处理机制的第9个事件 和第10个事件

                9,10个事件中的步骤:

                 a:判断当前页面是否有实现IRequiresSessionState接口

                 b:从cookie中获取sessionid从服务器的ssesion池中找到session对象

                 c:将session对象赋值给上下文的seesion属性

             4:进程内session的缺点

                a:当网站访问量过大的时候    会导致session池重启   然后session池中的session对象就会丢失了

             5.0进程外session 

                a: 状态服务器(优点:速度快,缺点:也是不稳定)

                b: 数据库(优点:比较稳定,缺点:每次访问sesion 都要访问db  频繁打开和关闭ado.net 也是比较消耗性能的)

            

    关于cookie的用法

    赋值:

     单个的形式:

                  HttpContext.Current.Response.Cookies["Email"].Value="soaeon@163.com";

                  HttpContext.Current.Response.Cookies["key"].Value="soaeon";

     以对象的形式来赋值:

          HttpCookie cookie  =new HttpCookie("tempMsg");

    cookie.Values["Email"] = "soaeon@163.com";

    cookie.Values["key"] = "soaeon" ;

    cookie.Domain = "soaeon.com";   //设置当前cookie所属于的域

    cookie.Expires = (DateTime)expiresTime   //设置cookie的过期时间(持久cookie)

    System.Web.HttpContext.Current.Response.Cookies.Set(cookie);

    取值:

                           System.Web.HttpContext.Current.Request.Cookies["Email"].Value;

                           System.Web.HttpContext.Current.Request.Cookies["key"].Value;

                   或者:

                          HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["tempMsg"];

                          string email = cookie.Values["Email"]; 
                          string key = cookie.Values["key"];

     关于session的用法

      赋值     Session["name"] = "soaeon@163.com";

      取值      

    if (Session["name"] != null)
    {
    string str = Session["name"].ToString();

    }

       

          

  • 相关阅读:
    上手 WebRTC DTLS 遇到很多 BUG?浅谈 DTLS Fragment
    亮相 LiveVideoStackCon,透析阿里云窄带高清的现在与未来
    会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准
    如何用 Electron + WebRTC 开发一个跨平台的视频会议应用
    理论 + 标准 + 工程 —— 阿里云视频云编码优化的思考与发现
    遍历哈希表
    sql语句的循环执行
    一个aspx页面里所有的控件
    SELECT DISTINCT 语句
    100 The 3n + 1 problem
  • 原文地址:https://www.cnblogs.com/soaeon/p/5604730.html
Copyright © 2011-2022 走看看