首页 > 编程语言 >C#基础-->cookie和session

C#基础-->cookie和session

时间:2023-06-19 12:12:15浏览次数:31  
标签:Cookies C# soaeon -- session cookie 服务器 HttpContext

https://www.cnblogs.com/soaeon/p/5604730.html

关于cookie和session 

       cookie

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

           2:cookie存放于客户端 

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

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

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

      session:      

  Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每 个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用 户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串

         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="[email protected]";

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

 以对象的形式来赋值:

 HttpCookie cookie  =new HttpCookie("tempMsg");

cookie.Values["Email"] = "[email protected]";

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"] = "[email protected]";

  取值      if (Session["name"] != null)

          {

            string str = Session["name"].ToString();
          }

   

标签:Cookies,C#,soaeon,--,session,cookie,服务器,HttpContext
From: https://www.cnblogs.com/Dongmy/p/17490832.html

相关文章

  • uniapp封装接口
    1.创建一个config文件夹,在里面创建app.jslethttpApi=''//接口公共部分module.exports={//要传的请求头token等HTTP_REQUEST_URL:httpApi,HEADER:{Headers,Authorization:'token','i-branch':'zh'},//......
  • jsp WebUploader 分块上传
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有......
  • 深入分析Go语言与C#的异同
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言为了更加深入地介绍Go语言以及与C#语言的比较,本文将会从多个维度出发进行详细的阐述。首先,将从Go语言的关键字方面介绍Go与C#在语言......
  • 商城后台管理系统
    文件链接:https://files.cnblogs.com/files/blogs/738670/java.zip?t=1687147279&download=true    ......
  • Qt的QFile_Size实现调试
    背景c++qt需要获取一系列日志的大小,不想和底层C接口打交道,同时想看看QT的实现,是如何完成的?源码查看首先通过qtcreator的帮助知道,QFile::size()是基类QFileDevice::size()实现,然后找到Qt5.9.7的源码,qtbase\include\QtCore\qfiledevice.h,索引到src/corelib/io/qfiledevice.h......
  • 官方core-ktx库能对富文本Span开发带来哪些便利?
    这是一个系列文章,专门研究Android官方提供的core-ktx库里面的扩展类、方法等等,看看能为项目开发带来哪些便利。已更新的文章列表如下:你需要了解的官方core-ktx库能对开发带来哪些便利1官方core-ktx库能对SparseArray系列、Pair开发带来哪些便利?接下来,本篇文章就带你看下富文本开发......
  • LTV-155E-ASEMI代理光宝储能专用光耦LTV-155E
    编辑:llLTV-155E-ASEMI代理光宝储能专用光耦LTV-155E型号:LTV-155E品牌:光宝封装:SOP-5引脚数量:5类型:光耦特性:台湾光宝、IGBT驱动器、储能专用光耦\高速光耦封装尺寸:如图工作温度:-40°C~105°CLTV-155E特性:1.0A最大峰值输出电流0.8A最小峰值输出电流轨对轨输出电压200ns最大传播延迟1......
  • Flutter 绘制探索 | 扇形区域与点击校验
    作者:张风捷特烈0.前言今天来探索一个问题,如何绘制一块扇形区域路径,并且校验触点是否落在扇形区域之中。这个问题对于绘制饼图及处理手势事件校验非常重要。1.扇形区域的定义首先来明确一下扇形区域的表示,如下图所示,一个扇形区域通过五个属性进行描述:属性名类型作用centerO......
  • kotlin 和 r8 的量子纠缠 | 类加载机制偷鸡
    前言戏接上文,kotlin升级没想到啊还有一个大坑。我们之前说了我们使用的agp版本是7.0.3,在这个版本的R8竟然会出现kotlin混淆的bug。断更一个月,不更文的一个原因就是因为最近感觉太菜了,并没有文章素材了。问题排查接下来还是一点点进行问题分析,我们先从kotlin元数据开始讲这个问题。......
  • 如何手动添加jar包到maven本地库?
    作为小白,搭建maven工程的时候,最常碰见的一个问题,就是配置的maven库中缺少某个包,看着红色的叉子,心情就很糟了。一位Java大神告诉我这个问题一般是两种解决:1.包确实不存在,或者包的目录下有乱七八糟的文件包不存在说明下载有问题,可能是私服没有,或者网络有问题,没下载完整等等。乱七八......