Asp.Net保存session的三种方法

C#中保存Session的三种方法及Web.Config设置

一、保存session到sql server,须要指定Sql Server服务器,这种方法由于要读写数据库最慢sql

<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20" />

二、 保存session到windows进程,要使用这种方法,须要打开aspnet_state.exe服务,经过此方法,咱们能够将session保存到其它服务器,这样能够实现多台服务器的session共享数据库

<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42626"
cookieless="false"
timeout="20" />

三、默认状况,.net将session保存到当前进程中,这种方式最快,可是不能多台服务器共享sessionwindows

<sessionState
mode=”InProc”
cookieless=”false”
timeout=”20”
/>

课外阅读浏览器

ASP.NET中客户端Session状态的存储服务器

在咱们上面的Session模型简介中,你们能够发现Session状态应该存储在两个地方,分别是客户端和服务器端。客户端只负责保存相应网站的SessionID,而其余的Session信息则保存在服务器端。在ASP中,客户端的SessionID实际是以Cookie的形式存储的。若是用户在浏览器的设置中选择了禁用Cookie,那末他也就没法享受Session的便利之处了,甚至形成不能访问某些网站。为了解决以上问题,在ASP.NET中客户端的Session信息存储方式分为:Cookie和Cookieless两种。cookie

ASP.NET中,默认状态下,在客户端仍是使用Cookie存储Session信息的。若是咱们想在客户端使用Cookieless的方式存储Session信息的方法以下:session

找到当前Web应用程序的根目录,打开Web.Config文件,找到以下段落:less

<sessionState
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"
  timeout="20" 
/>tcp

 

这段话中的cookieless="false"改成:cookieless="true",这样,客户端的Session信息就再也不使用Cookie存储了,而是将其经过URL存储。关闭当前的IE,打开一个新IE,从新访问刚才的Web应用程序,就会看到相似下面的样子:其中,http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx中黑体标出的就是客户端的Session ID。注意,这段信息是由IIS自动加上的,不会影响之前正常的链接。网站

相关文章
相关标签/搜索