国外自助建站免费建站平台,网站年报公示怎么做,android开发难吗,百度品牌专区一、理解Session机制#xff1a;Session是一种用于服务器端状态管理的机制#xff0c;服务器使用一种键值对的结构来保存信息。当程序需要为某个客户端的请求创建一个Session的时候#xff0c;服务器首先检查这个客户端的请求里是否已包含了一个Session标识 - 称为 Session …一、理解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 cookielessAutoDetect /sessionState/system.webASP.NET 确定请求浏览器或请求设备是否支持 Cookie。如果请求浏览器或请求设备支持 Cookie则 AutoDetect 使用 Cookie 来保留用户数据否则将在查询字符串中使用一个标识符。如果浏览器或设备支持 Cookie但当前禁用了 Cookie则请求功能仍会使用 Cookie也就是禁止不了Session所用的Cookie这一点我有点疑惑我禁止掉ie的Cookie但仍然可以使用Session。 2、UseCookies Web.config做相应的配置如下system.web sessionState cookielessUseCookies /sessionState/system.web 无论浏览器或设备是否支持 Cookie都使用 Cookie 来保留用户数据。 3、UseDeviceProfile Web.config做相应的配置如下system.web sessionState cookielessUseDeviceProfile /sessionState/system.web ASP.NET 根据 HttpBrowserCapabilities 设置来确定是否使用 Cookie。如果 HttpBrowserCapabilities 设置指示浏览器或设备支持 Cookie将使用 Cookie否则将在查询字符串中使用一个标识符。 4、UseUri Web.config做相应的配置如下system.web sessionState cookielessUseUri /sessionState/system.web无论浏览器或设备是否支持 Cookie调用功能都使用查询字符串来存储标识符。这时候ASP.NET会将Session id存放在地址栏中当访问某个写了Session的页面时地址栏会变成http://localhost:1237/WebSite6/(S(vyn3bk55h4a03w455vjiwj21))/default4.aspx这时候你可以去打印Session id你会发现Session idvyn3bk55h4a03w455vjiwj21。 二、ASP.NET中Session的存储模式有以下五种1、Custom 会话状态将使用自定义数据存储区来存储会话状态信息。 2、InProc 会话处于正在处理 ASP.NET 辅助进程的状态。 3、Off 会话状态被禁用。 4、SQLServer 会话状态将使用进程外 SQL Server 数据库来存储状态信息。 5、StateServer 会话状态将使用进程外 ASP.NET 状态服务来存储状态信息