• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
works guo

成功的渴望与生俱来---- 成功是获得赞美与尊重的最有效的途径
博客园    首页    新随笔    联系   管理    订阅  订阅

SessionStateStoreProviderBase.GetItemExclusive Method

从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参数.


posted @ 2008-03-16 01:24  works guo  阅读(521)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3