您的位置:首页 > 编程语言 > ASP

Session在ASP.NET中的应用资料整理

2006-11-01 14:13 417 查看
1、 Session的作用:
A、 在网络中的应用,主要用于标识网络中的没一个访问了服务器的客户端,以 WWW服务器来讨论,其它的还没研究,当用户首次与WWW服务器连接时,它就与服务器建立了session,同时服务器会同时为其分配一个sessionID用于唯一标识用户的身份,这个sessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。这个sessionID有很大的意义,例如当一个用户提交表单时,浏览器会将用户的sessionID自动附加在http头信息中,服务器处理完表单,将表单返回给sessionID的对应用户,在这里就需要sessionID标识用户的作用
B、 在我们编写asp.net程序时,可以通过访问asp.net的内置session对象为每个用户存储各自信息,类似程序中的一个全局变量
2、 session信息的配置
在asp.net应用程序中,都有一个web.config文件,session的配置信息就包含在
<sessionState
…
/>中
sessionState的语法:
<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"

/>

必须具备的属性:
[thead]
[/thead]

属性

选项
描述
mode
设置将Session信息存储到哪里
Off
设置为不使用Session功能
InProc
设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。
StateServer
设置为将Session存储在独立的状态服务中。
SQLServer
设置将Session存储在SQL Server中。
可选的属性:
[thead]
[/thead]

属性

选项
描述
cookieless
设置客户端的Session信息存储到哪里
ture
使用Cookieless模式
false
使用Cookie模式,这是默认值。
timeout
设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟
stateConnectionString
设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。
sqlConnectionString
设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。
stateNetworkTimeout
设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
3、在asp.net中客户端与服务器端的session状态存储
asp.net中,客户端存储session信息的方式有两种:cookie和cookieless,默认状态下,客户端还是使用cookie存储session信息,cookieless信息也可以在web.config文件中的sessionState里设置,如果cookieless=true客户端的session将不在使用cookie存储。

如果cookieless=false,那么session的信息将存储在IIS进程中,当IIS关闭或重启,这些信息都会丢失,这种方式的优点在于性能高,因为所有的session信息都保存在IIS进程中,所以IIS能够很快访问到这些信息,这种模式比进程外存储session信息或是SQLserver存储session信息都要快很多。
将服务器session信息存储在进程外:管理工具>服务>asp.net state service(启动),该服务主要是启动一个保存session信息的进程,服务启动后可以在任务管理器进程中看到一个aspnet_state.exe进程。或是将session信息存储在其它的服务器上,此时sessionState中的mode改为StateServer,stateConnectionString中也要配置目标服务器的地址,还有一个条件就是目标服务器必须安装了.NET Framework并启动了asp.net state service服务
将服务器session信息存储在SQL Server中(整理中……)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: