一、理解Session机制:
Session是一种用于服务器端状态管理的机制,服务器使用一种键值对的结构来保存信息。当程序需要为某个客户端的请求创建一个Session的时候,服务器首先检查这个客户端的请求里是否已包含了一个Session标识 - 称为 Session id,如果已包含一个Session id则说明以前已经为此客户端创建过Session,服务器就按照Session id把这个 Session检索出来使用。在ASP.NET中,默认情况下这个Session id会存储在客户端浏览器的cookie 中,默认情况下如果不对Session做任何写操作的话,客户端是不存储这个Session id的,可以通过在页面拖一个button,不要对Session做任何写操作,然后在Click事件中打印Session.SessionID,当单击button时每次SessionID都是不同的。
 protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write(Session.SessionID);
    }

这说明服务器端的Session id都是重新创建的。
Session id的存储方式有以下四种
1、AutoDetect
Web.config做相应的配置如下:
<system.web>
    <sessionState  cookieless="AutoDetect">
    </sessionState>
</system.web>
ASP.NET 确定请求浏览器或请求设备是否支持 Cookie。如果请求浏览器或请求设备支持 Cookie,则 AutoDetect 使用 Cookie 来保留用户数据;否则,将在查询字符串中使用一个标识符。如果浏览器或设备支持 Cookie,但当前禁用了 Cookie,则请求功能仍会使用 Cookie(也就是禁止不了Session所用的Cookie,这一点我有点疑惑,我禁止掉ie的Cookie,但仍然可以使用Session)。
 
2、UseCookies
Web.config做相应的配置如下:
<system.web>
    <sessionState  cookieless="UseCookies">
    </sessionState>
</system.web>
 无论浏览器或设备是否支持 Cookie,都使用 Cookie 来保留用户数据。
 
3、UseDeviceProfile
Web.config做相应的配置如下:
<system.web>
    <sessionState  cookieless="UseDeviceProfile">
    </sessionState>
</system.web>
 ASP.NET 根据 HttpBrowserCapabilities 设置来确定是否使用 Cookie。如果 HttpBrowserCapabilities 设置指示浏览器或设备支持 Cookie,将使用 Cookie;否则,将在查询字符串中使用一个标识符。
 
4、UseUri
Web.config做相应的配置如下:
<system.web>
    <sessionState  cookieless="UseUri">
    </sessionState>
</system.web>
无论浏览器或设备是否支持 Cookie,调用功能都使用查询字符串来存储标识符。这时候ASP.NET会将Session id存放在地址栏中,当访问某个写了Session的页面时,地址栏会变成:
http://localhost:1237/WebSite6/(S(vyn3bk55h4a03w455vjiwj21))/default4.aspx
这时候你可以去打印Session id,你会发现Session id=vyn3bk55h4a03w455vjiwj21。

二、ASP.NET中Session的存储模式有以下五种:
1、Custom
 会话状态将使用自定义数据存储区来存储会话状态信息。
 
2、InProc
 会话处于正在处理 ASP.NET 辅助进程的状态。
 
3、Off
 会话状态被禁用。
 
4、SQLServer
 会话状态将使用进程外 SQL Server 数据库来存储状态信息。
 
5、StateServer
 会话状态将使用进程外 ASP.NET 状态服务来存储状态信息

Cookies和Session(二)相关推荐

  1. cookies和session

    基于cookies做用户验证时,敏感信息不适合放在cookies中 cookies保存在客户浏览器端的键值对 session保存在服务器端的键值对(依赖于cookies),把用户浏览器中的cookie ...

  2. Python的cookies与session

    一. 渊源 当我们浏览一个网页,比如逛淘宝,我们在上面进行了登录,然后看上了心仪的东西并加入了购物车.临时有事,把电脑关掉了,第二天再重新打开这个界面的时候,我们发现并没有进行登录操作,就已经登陆上去 ...

  3. Python爬虫笔记——post请求、cookies及session

    一.post请求 post和get都可以带着参数请求,不过get请求的参数会在url上显示出来,但post请求的参数就不会直接显示,而是隐藏起来.像账号密码这种私密的信息,就应该用post的请求.如果 ...

  4. 【Django】Django中cookies、session和token实现demo

    一.cookies和session HTTP是一种无状态的协议,客户端向服务端发起请求,在通过用户名和密码进行用户认证后,HTTP协议不会记录认证状态,所以用户在下次请求时还是需要再次认证.为了能够保 ...

  5. 浅析http协议、cookies和session机制、浏览器缓存

    浅析http协议.cookies和session机制.浏览器缓存http://blog.csdn.net/coslay/article/details/41674799 最近几天在复习http协议中h ...

  6. PHP相关系列 - 浅析http协议、cookies和session机制、浏览器缓存 .

    作者:   benwin 来源:http://www.phpben.com/?post=77 最近几天在复习http协议中headers,cookies.session.缓存等相关知识,发现些新知识点 ...

  7. django关闭浏览器,怎样清除 cookies 和 session

    django关闭浏览器,怎样清除 cookies 和 session 设 置 Cookie: def cookie_set(): response = HttpResponse(" 设置 C ...

  8. cookies和session区别

    cookies和session区别 1.Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端. 2.Cookie有大小限制以及浏览器在存cookie的个 ...

  9. Frameset导致Cookies和Session丢失的原因及解决办法

    参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/details/1742775  2 使用fr ...

  10. Cookies 、 Session 和 token 的区别

    这篇文章写的 Cookies 和 Session的区别 比较详细,也很好理解,可以学习下:https://blog.csdn.net/axin66ok/article/details/6175522 ...

最新文章

  1. 针对 AlloyFinger 中 currentTarget为空的解决方案
  2. 【入门须知】学DIV CSS技术如何入门?
  3. redis、memcache、mongoDB有哪些区别?
  4. 程序员的自我进化——补上最短的那块情商木板
  5. how to create Employee in SAP Cloud Platform
  6. web desktop在线演示
  7. 索引 | ggplot2基础语法系列推文汇总
  8. Git 基础(六)—— 工作区和暂存区与 Git 对修改的管理
  9. 牛客网月赛24--ABC
  10. JPA自动生成数据库表教程
  11. OpenERP中多币种处理(外币处理)
  12. Spring Aop(十五)——Aop原理之Advised接口
  13. java 协方差矩阵_协方差矩阵概念(易理解)
  14. 传奇世界开服教程:传奇世界开服需要准备什么?前期需要投入多少?
  15. Xftp/Xshell 要继续使用此程序,您必须应用最新的更新或使用新版本
  16. 【职场必备知识】毕业留蓉政策与发展前景分析
  17. 成员函数和友原函数和一般函数的区别
  18. 李宏毅机器学习特训营——regression课程笔记
  19. AtCoder Regular Contest 084
  20. 【无人机】【2012.09】将无人驾驶飞机系统融入城市环境中的现代警务研究

热门文章

  1. android java标准时间_java android中对list的时间进行排序
  2. 多线程 循环 锁_大多数人还不清楚的iOS多线程
  3. 江陵中学2021高考成绩查询,2021高考序幕拉开 荆州38080名考生赴考
  4. html 图片行内剧中,HTML入门(转义字符、行内样式和块级元素、定位、锚点、跑马灯标签、图片标签、表格标签的讲解)...
  5. 在linux中编写shell脚本文件,如何编写简单的Shell脚本(Script)文件之Linux的基本操作...
  6. C语言(CED)输入一个任意长度的正整数,将该数逆序输出。
  7. 访问云服务器储存的mp4_访问云服务器储存的mp4
  8. 对比损失的PyTorch实现详解
  9. linux 系统调用时怎么知道当前上下文属于那个进程,linux – 编写系统调用来计算进程的上下文切换...
  10. HTML下拉菜单怎么做成横向,css导航条横向带下拉菜单