Session id的存储方式有以下四种
1、AutoDetect
Web.config做相应的配置如下:
<system.web>
<sessionState cookieless="AutoDetect">
</sessionState>
</system.web>
ASP.NET 确定请求浏览器或请求设备是否支持 Cookie。如果请求浏览器或请求设备支持 Cookie,则 AutoDetect 使用 Cookie 来保留用户数据;否则,将在查询字符串中使用一个标识符。如果浏览器或设备支持 Cookie,但当前禁用了 Cookie,则请求功能仍会使用 Cookie.
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://www/(S(vyn3bk55h4a03w455vjiwj21))/default.aspx