Net中Session的用法

一、什么是Session?

简单来说,就是用户与网站服务器建立的一个连接,服务器分配给一个编号。当一台WWW服务器运行时,可能有若干用户正在浏览运行在这台服务器上

的网站。当用户首次与这台WWW服务器创建连接的时候,它就和这台服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用来标识

这个用户的唯一身份,也就是不同的客户端会生成不同的Session对象。存储在对话状态变量中的数据,存在的周期相对较短。实际上SessionID

是由WWW服务器随机产生的一个由24个字符组成的字符串。

二、Session的具体使用

1、Web.Config文件中的Session配置

mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false" timeout="20"  />

2、必须包含的属性定义

mode:设置将Session信息存储到哪里,有四种方式:

Off:设置不使用Session功能。

InProc :将Session存储在IIS进程内,这是默认值,也最常用(优点是简单,性能最高。但是当重启IIS服务器时Session丢失。);。

StateServer :将Session存储在ASP.NET状态服务进程中(重新启动Web应用程序时保留会话状态,并使会话状态可以用于网络中的多个Web服务器)。

SQLServer :将Session存储在SQL Server中(存储在内存和磁盘中,服务器挂掉重启后都还在)。

3、可选属性的定义

cookieless:获取或设置一个值,该值指示是否使用 cookie 来标识客户端会话。

true 如果所有的请求会为无 cookie,或 false 如果没有请求会为无 cookie,或其中一个 HttpCookieMode 值。

ASP.NET 2.0 版中的默认值是 AutoDetect。 在早期版本中,默认值是 false。

timeout:设置经过多少分钟后服务器自动回收Session信息,默认为20分钟

stateConnectionString:在远程存储会话状态时,此属性指定服务器名称和端口。 stateConnectionString 时,属性是必选项 Mode 设置为 StateServer。

sqlConnectionString:设置为sqlConnectionString 时,属性是必选项 Mode 设置为 SQLServer。

stateNetworkTimeout:获取或设置 Web 服务器和状态服务器之间的网络连接可以保持空闲的时间量。

属性值:

Type: System.TimeSpan

以秒为单位,Web 服务器和状态服务器之间的网络连接可保持空闲状态,放弃该会话前的时间。 默认值为 10 秒。

设置为 sessionStateSection 时,属性是必选项 Mode 属性设置为 StateServer。

3、Session用法示例

例如:Session["userName"]="小明";//存储信息

string name=session["userName"];//取值

Session。Clear();//从Session状态集合中移除所有的键和值

Session.Abandon();//取消当前Session会话

三、Session的运行原理图解

4418040-ef1592011530acf8

四、Session与Cookie的区别

1、cookie存客户端,session存服务端。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

五、常见的Session超时和丢失的情况以及解决方法

1、服务器内存补充导致Seesion丢失;解决方法:IIs设置Session超时时间,重新设置会话时间,默认为20 min。

2、杀毒软件扫描Web.cofig;解决方法:设置杀毒软件不扫描Web.cofig配置文件。

3、程序内部有让Session丢失的代码;解决方法:检查代码处理。

4、程序有框架页面和跨域情况;解决方法:在Window服务中将ASP.NET State Service 启动。

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Json的总结

一、什么是Json?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一个子集。 JS…

java 整数溢出检测,Java如何处理整数下溢和溢出以及如何检查它?

How does Java handle integer underflows and overflows?Leading on from that, how would you check/test that this is occurring?解决方案If it overflows, it goes back to the minimum value and continues from there. If it underflows, it goes back to the maximum…

console 程序随系统启动及隐藏当前程序窗口

应业务需求,程序需要与系统启动而自动运行,故加入以下代码,保存成 .bat文件 ,双击执行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v HuazhuPushRecord /t reg_sz /d "your…

Linq用法笔记

一、什么是Linq?LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。LINQ是一种用来进行数据访问的编程模型,Linq可以用相同的语法访问不同的数据源,比如xml、数…

用例图练习

转载于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java excel row遍历空_Java poi读取,写入Excel,处理row和cell可能为空的情况

首先需要导入包import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;然后写方法&a…

JQuery常用选择器总结

作为网站开发者来说,不可避免的需要和页面打交道,很多时候都需要去操作一些页面上的元素,掌握常用的Jquery选择器是十分有必要的。现从网上整理一些常用的Jquery选择器,希望能给大家带来一些开发上的便利。一、基本选择器&#xf…

java 常量 内存分配_Java内存分配之堆、栈和常量池

寄存器:最快的存储区,位于不同于其他存储区的地方——处理器内部。寄存器的数量极其有限,所以寄存器由编译器根据需求 进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。栈:存放基本类型的数据和对…

三种SQLServer分页查询语句笔记

作为程序员来说,与数据库打交道是十分频繁的分页查询是一个开发者必须掌握的基本知识点,目前整理了下面三种SQLServer分页查询语句的写法,仅供参考。一、Top Not IN 方式(查询靠前的数据较快)语法格式:sele…

sqlserver2008r2安装

转载于:https://www.cnblogs.com/sprinng/p/4932739.html

JQuery七个常犯的错误

1、 乱用选择器JQuery选择器调用代价很大,反复调用效率更低。应采用缓存对象的方法或采用链式调用的方式。//错误的写法$("#button").click(function(){ $(#list li).addClass(strong); $(#list li).css(color,red);});//正确的写法$("#button…

java流读取xml_使用FileInputStream(用于Java)读取XML文件?

这是交易.对于我的项目,我必须使用Java和XStream对随机树进行序列化和反序列化.我的老师制作了Tree / RandomTree算法,所以我不必担心.我不知道该怎么做是这样的:我使用FileInputStream来读/写我序列化和反序列化的xml文件,但是当我反序列化时,我不知道用于读取文件…

后台寻路系统的大体思路与流程

总的思路就是: 1, 通过前台unity的navigation的的接口: 获得顶点和三角形集合数据 2, 将前台的mesh数据转换成标准的obj格式数据 3. 强obj mesh数据经过一系列转换和优化, 生成recastnavigation插件寻路模块detour需要的导航数据 故制作了工具MakeNavmeshData生成detour需要的…

关于WCF、WebAPI、WCFREST、WebService之间的区别总结

在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API。在.net平台下,你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。一、Web Service1、…

java 程序是由什么组成的 java_从零开始的JAVA -2. java程序的构成及命名规则

1.public classYD2.{3. public static voidmain (string args[ ])4. {5. System.out.println("我是一名学习JAVA的新人!");6. }7.}第一行 public 代表这是一个公共类(可省略) class 是声明一个类,在他后面的YD 就是类名(类名可以随意写)第二行…

你应该知道的jQuery技巧【收藏】

jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其实&am…

LINQ表达式用法整理

收集一些Linq表达式中的一些比较常用的写法,希望能给大家工作当中带来一些便利。1. Where子句条件过滤结果集型(集合数据使用这种,譬如数组、列表数据,同样适用于Datatable等多列数据集)类SQL语句的写法,对…

Eclipse is running in a JRE, but a JDK is required 解决方法(转)

转自:http://comeonbabye.iteye.com/blog/1186239 安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分两步解决问题: 1. 检查Eclipse正…

java线程归并排序_Java-归并排序 - FeanLau的个人空间 - OSCHINA - 中文开源技术交流社区...

public class MergeSort {static int number0;public static void main(String[] args) {int[] a {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };printArray("排序前:",a);MergeSort(a);printArray("排序后:",a);}private static voi…

收集一些优秀的DoNet开源项目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基…