asp.net session 介绍一三种Session存储方式
asp.net session 介绍一三种Session存储方式
www.firnow.com 时间:2009-03-04 作者:匿名 编辑:sky 点击: 1478 [评论]
对于asp.net的程序来说,session是一个必需要了解的对象。
下面就对session做一个具体介绍。
简单来说,Session就是服务器给客户端的一个编号,当一台web服务器运行时,可能是有多个用户都在浏览这台服务器上的网站,当每个用户首次与这台服务器建立连接时,它就与这个服务器建立了一个Session,同时服务器就会自动为其分配一个SessionId,用以标识这个用户的唯一身分,这个Session就是有服务器随机产生的一个由24个字符组成的字符串。
这个唯一的SessionId还是有很大的实际意义,当一个用户提交表单时,浏览器就会将用户的SessionId自动附加在HTTP头信息中,当服务器处理完这个表单后,就会将结果返回给SessionId所对应的用户。
如下是Web.config如何配置Session的:
<configuration>
<system.web>
<sessionState mode=" Off | InProc | StateServer | SQLServer "
cookieless=" true | false "
timeout=" number of minutes "
stateConnectionString=" tcpip=server:port "
sqlConnectionString=" sql connection string "
stateNetworkTimeout=" number of seconds " />
</system.web>
</configuration>
其中各个节点属性:
mode: Session的存储方式(必有的属性)。
InProc:将Session存到进程内(这是Default值。)
off:禁用Session.
StateServer:将Session存到独立的状态服务中(Asp.net State Service).
SqlServer:将Session存到SqlServer中。
Cookieless:设置客户端Session存储的方式。
false:使用Cookie模式(default).
true:使用Cookieless模式。
timeout:设置Session过期时间(default is 20 minutes)
stateConnectionString: 设置Session独立存放的状态服务所在服务器的名称(地址)和端口号,当mode=“stateserver时,这个属性就是必须的。
sqlConnectionString:设置与Sqlserver的连接字符串,当mode="sqlserver"时,这个属性时必须的。
stateNetWorkTimeout:设置当mode=“StateServer”时,经过多少秒空闲后,断开web服务器与存储状态信息服务器的TCP/IP连接(default is 10 seconds).
asp.net中客户端Session的存储。
asp.net中,默认是使用Cookie存储Session的,如果是将cookieless="false",改成cookieless="true",则session就不用cookie来存储了,而是使用url来存储。
asp.net服务器端session存储在进程内(inproc)
当mode="Inproc"时,服务器的Session存储在IIS进程中,当IIS关闭,重启时,这些Session信息就会丢失,但这种模式最大的好处就是性能提高。
asp.net服务器端Session存储在进程外(StateServer)
当mode="StateServer"时,服务器的Session就存储在"ASP.NET State Server"这个服务的进程中,在服务中找到名为:“ASP.NET State Service”的服务,启动这个服务,在资源管理器的进程中就能找到一个名为:“aspnet_state.exe"的进程,这个就是我们保存 Session的进程。
”ASP.NET State Server"服务可以与Web服务器分开.eg:web服务器在192.168.0.100上,“asp.net state service"服务在192.168.0.101上,则可以进行设置:
mode="StateServer" stateConnection="tcpip=192.168.1.101:42424".
asp.net服务器端Session存储到SQLServer中(SQLServer),
当mode="sqlserver"时,服务器的Session就是存储到Sql server中建立一个存储Session的数据库。在
%windir%/Microsoft.NET/Framework/v2.0.50727 下有个名为: InstallSqlState.sql 的sql脚本文件. 这个脚本是专门用来建存储Session的数据库以及一个维护Session信息数据库的SQL Server代理作业的.
执行此sql脚本后,会看到一个新增的aspstate数据库,但这个数据库中,只有存储过程,没有用户表,用户表放到了tempdb这个数据库中去了,ASpstateTempSessions和ASPStateTempApplications,Session信息存储到了ASPStateTempApplication存储了asp中Application对象信息。
另外查看管理->SQL Server代理->作业,会发现多了一个名为:
ASPState_job_DeleteExpiredSession的作业,这个作业实际上是每分钟去ASPStateTempSession中删除过期的Session信息。
上面的方法是建立Session数据库的一个”官方“方法,但在实际的应用中一般没这么去建,而是采用另一种方法,使用下面这段命令来自动创建Session数据库:
aspnet_regsql.exe -S ServerName/InstanceName -U User -P Password -d DBName -ssadd -sstype c
此命令将在ServerName/InstanceName建立DBName的数据库, 用户存储Session的数据库. 此数据库中包含了存储过程和用户表. 同时在SQL Server代理 -> 作业 中也加入了相应的作业.
然后在Web.config中设置好配置信息:
mode="SQLServer" sqlConnectionString="data source=ServerName/InstanceName; Integrated Security=SSPI;"
"Integrated Security=SSPI;" 是指使用Windows集成身份验证.
如果使用SQL用户登陆方式. 则在sqlConnectionString中设置好"userid=sa; password=***".
这样一来就可以将Session存放到SQLServer中了
文章出处:飞诺网(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090304/158092.html)
asp.net session 介绍一三种Session存储方式相关推荐
- DAS、SAN和NAS三种服务器存储方式
一.存储的分类 根据服务器类型分为:封闭系统的存储和开放系统的存储, 内置存储 外挂存储 外挂存储根据连接的方式分为: 网络接入存储(Network-Attached Storage,简称NAS) ...
- hive三种元数据存储方式
hive本身不存储数据,借助hdfs存储数据,hive和关系型数据库一样是有表结构的,这些信息hive也存储在第三方软件中,如derby.mysql. 根据元数据的存储方式,hive的部署可以分为三种 ...
- 前端三种本地存储方式+indexedDB浏览器数据库存储
1.cookie存储: 特征:1.不同的浏览器存放的cookie位置不一样,也是不能通用的.2.cookie的存储是以域名形式进行区分的,不同的域下存储的cookie是独立的.3.我们可以设置cook ...
- 数据存储方式有哪些?这3种数据存储方式了解吗?
数据存储具有很强的现实意义,只有采取合理的数据存储方式,才能够有利于数据的管理.检索等.为增进大家对数据存储方式的认识,本文将对三种数据存储方式予以介绍.如果你对数据存储方式具有兴趣,不妨继续往下阅读 ...
- asp.net错误处理的三种方法
asp.net错误处理的三种方法 以前有过一篇博文,主要是出错时调至错误页面,然后将当前出错的页面存入Session,然后执行刷新等操作,该机制主要用于 程序员自己控制错误,但是有些错误和异常是程序员 ...
- 【C语言】-关于strlen的介绍以及三种模拟实现的方法
作者:低调 作者宣言:写好每一篇博客 文章目录 前言 一.strlen函数的使用 二.strlen函数的模拟实现 2.1创建临时变量法 2.2递归法 2.3指针法 总结 前言 今天我们来讲解一下str ...
- ASP.NET MVC下的四种验证编程方式[续篇]
ASP.NET MVC下的四种验证编程方式[续篇] 原文:ASP.NET MVC下的四种验证编程方式[续篇] 在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET ...
- DDOS攻击器常见的三种DDoS攻击方式详解
一流的攻击速度以及强大的隐蔽性能,使得DDOS集合了市面上所有攻击软件优点成为了最热的攻击方式.接下来本文将简单的介绍一下三种最为流行的DDOS攻击方式. SYN/ACK Flood攻击: 这种攻击方 ...
- ios首次加载web_IOS_IOS中UIWebView的使用详解,一、初始化与三种加载方式
UI - phpStudy...
IOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种 ...
最新文章
- 断言(assert)和程序的安全保证
- vuedraggable示例_vue拖拽列表vuedraggable
- Access转Sql Server问题
- 关系数据库规范化理论(关系数据库设计理论)
- 部署在Netweaver上的Fiori应用的WebContent文件夹
- mac下的svn服务器建立
- Sublime Text 3 代码格式化插件推荐 CodeFormatter
- 软件测试行业用mac好还是win好,业余RMAA测试 同样的硬件下OS X果然比Windows声音好...
- 2021十大金融科技趋势
- UVa11542 - Square(gauss)
- Vue 使用 v-show 失效
- 服务器是怎么工作的?(一)——DHCP工作原理剖析
- Select2 鼠标点击空白处不消失简单测试和解决方法
- 金融评分卡项目—7.申请评分卡中的数据预处理和特征衍生
- 21. Magento 创建新闻模块(2)
- 使用存储过程创建datawindow
- matlab 正弦波 fft,【求助】正弦信号序列fft频谱分析!!!
- 谷歌安装Restlet Client插件
- Excel常用函数公式20例
- adt变频器故障代码ol2_变频器常见故障代码及处理实例