技术开发 频道

.NET会话管理


    sessionState中有以下几个可选项:

<!--[if !supportLists]-->allowCustomSqlDatabase
    若为True则存储会话数据的SQL数据库可以是用户自定义的数据库。默认为false,此时默认数据库为ASPState,且连接字符串中不能设置Initial Catalog

<!--[if !supportLists]-->mode
    指定对由Web.config所控制的所有页面是否禁用会话状态。若启用则会话状态的存储位置则是该属性
在进程内存储会话状态((Inproc)是最快的方法,它比较适用于少量易变数据。然而,这种方法容易受到进程失败的影响,并不适合多服务器或单机多处理器。对于这些情况,需要使用StateServer或SqlServer。对于失败或重启服务器,SqlServer是最健壮的方法。

<!--[if !supportLists]-->cookieless
    Cookie同会话状态一起使用存储的SessionID,这样服务器可了解请求是与哪个会话相连的。 Cookieless的可能值包括 AutoDetect、UseCookies、UseDeviceProfile和UseUri,其中UseCookie为默认值。

    当设置为AutoDetect时,将检测发出请求的客户端是否支持Cookie。当设置为seDeviceProfile 时,将根据HttpBrowserCapabilities设置来确定是否支持使用Cookie。如果这些都不支持使用Cookie或指定了UseUri,则SessionID会向URL添加一个值以实现持久化。

<!--[if !supportLists]-->cookieName
    存储SessionID的cookie的名称。默认值是ASP.NET_SessionId。

<!--[if !supportLists]-->customPrivder
    自定义会话状态提供者的名称。

<!--[if !supportLists]--><!--[endif]-->regenrateExpiredSessionId
    该属性与无cookie会话一起使用。若为true则过期的SessionID会被一个新的标示所替换。默认值为false

<!--[if !supportLists]--><!--[endif]-->sqlCommandTimeout
    SQL命令在被取消前处于空闲状态的事件秒数。默认值是30。

<!--[if !supportLists]--><!--[endif]--> sqlConnectionString
    指定连接到余兴SQL Server实例的连接串。若mode为SqlServer则必须设置它。

<!--[if !supportLists]--><!--[endif]--> stateConnectionString
    指定用于存储会话状态的服务器和端口。若mode设为StateServer时则必须指定它。

<!--[if !supportLists]--><!--[endif]-->stateNetworkTimeout
    当mode值被设置为StateServer时使用,其用于指定在请求被取消之前,TCP/IP网络连接可以处于空闲状态的秒数。默认值为10

<!--[if !supportLists]--><!--[endif]-->timeout
    指定会话超时并在被服务器放弃之前处于不活跃状态的分钟数。默认为20。

<!--[if !supportLists]--><!--[endif]-->useHostingIdentity
    若设为true则ASP.Net进程标识会被模拟。默认值为true

会话中的应用程序对象:

    另外一个在会话之间传递信息的方法是通过静态对象。静态对象在global.asax文件中声明。一旦声明对象的Scope属性被设置为Session,那么就可以在应用程序代码中通过名称在会话内访问对象。

    讲到这里,相信大家对Asp.Net的会话管理也有所了解了,在以后的开发环境中更加能好好运用他。

0
相关文章