博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SessionStateStoreProviderBase.GetItemExclusive Method
阅读量:7050 次
发布时间:2019-06-28

本文共 1677 字,大约阅读时间需要 5 分钟。

从session data store中返回read-only session-state data.
public abstract SessionStateStoreData GetItemExclusive(
    HttpContext context,
    string id,
    out bool locked,
    out TimeSpan lockAge,
    out Object lockId,
    out SessionStateActions actions
)
下面主要是对上面几个参数的描述:
context就是HttpContext
id 就是SessionID
locked 就是是否lock
lockAge 返回值时,包括一个TimeSpan对象,是设置一个session data store 被lock的时间.
lockId 包括一个当前请求lock的标识.
actions 包括一个SessionStateActions值.表示当前session是否没有初始化.
在请求开始时:SessionStateModule 对象调用GetItemExclusive方法,在这个期间有一个AcquireRequestState事件,当EnableSessionState属性设置为true时,也是默认情形,如果EnableSessionState属性设置为ReadOnly,SessionStateModule对象调用的方法就改为GetItem方法.
GetItemExclusive返回一个SessionStateStoreData对象主要是从数据存储中移植session信息,更新存储数据的有效日期,并且在请求期间在存储数据中lock session-item data.如果在数据存储中没有session-item数据,这时GetItemExclusive方法设置locked参数为false并且返回null引用.这个原因SessionStateModule对象会在数据存储中调用CreateNewStoreData方法去创建一个新的session item.如果session-item数据被找到但数据被lock,这时GetItemExclusive方法设置locked参数为"true",设置lockAge参数为当前日期和时间减去这时的日期和当item被锁时的时间(从数据存储中找回),设置lockId参数为从
数据存储中找回的lock标记,并且返回一个null引用.这个原因是SessionStateModule对象在每间隔半秒就会常识找回session-item信息并且获得关于数据的一个lock.如果lcokAge参数值设置为超越ExecutionTimeout,然后SessionStateModule 调用ReleaseItemExculusive方法去清出这个lock session-item 数据,并且然后再调用GetItemExclusive方法.
当cookieless和regenerateExpiredSessionId属性都设置为true时actionFlags参数才被使用.一个actionFlags值设置为初始化表示在session数据存储中的实体是一个新的需要初始化的session.在session数据存储中一个没有初始化实体被一个调用CreateUninitializedItem方法创建.如果从session数据存储的item中不是一个非初始化 item,这个actionFlags参数将被设置为"0";
自定义session-state store 实现支持cookieless sessions 应该设置actionFlags参数返回值是从session 数据存储当前item.如果actionFlags参数值为请求session-store item与InitialzeItem 枚举值相等,然后GetItemExculsive方法应该在设置在数据存储值为0之后设置actionFlags参数.

转载地址:http://rjpol.baihongyu.com/

你可能感兴趣的文章
IOS在Xcode 4.x以上如何 创建 和 添加 静态库
查看>>
WebSphere was 7.0修改端口号为80,修改上下文根
查看>>
Repeater控件数据导出Excel
查看>>
下载Android源码出现的问题
查看>>
远程桌面如何复制本地文件 远程桌面拷贝电脑上的文件方法
查看>>
[转]解决JS浮点数(小数)计算加减乘除的BUG
查看>>
ASP.NET MVC应用程序的安全性介绍总括(高级编程)
查看>>
Java模拟Delegate
查看>>
记录下,我们平时开发当中不得不知道的HTTP状态码
查看>>
HDU-1045 Fire NetFire Net 最大团
查看>>
VC++6.0 按F1无法打开 MSDN 的解决办法
查看>>
Eclipse自动部署项目到Tomcat的webapps下的有效方法
查看>>
Extjs4快速上手三——实现主界面
查看>>
如何替代Flex?
查看>>
控制属性修改时间,控制时间,联合主键
查看>>
android-包签名
查看>>
Android开发和调试必备工具-SDK Tools
查看>>
JSON.parse()和JSON.stringify()
查看>>
Ehcache 使用
查看>>
Supported Values for @SuppressWarnings(转)
查看>>