博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SessionStateStoreProviderBase.GetItemExclusive Method
阅读量:7051 次
发布时间: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/

你可能感兴趣的文章
CentOS 7 开放防火墙端口 命令
查看>>
深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
查看>>
HDU 1181 变形课 【DFS】
查看>>
MySQL事务
查看>>
7月26日实习日志
查看>>
Django之 路由系统
查看>>
UVa 679 Dropping Balls (例题 6-6)
查看>>
FileWriter写数据
查看>>
【Andorid X 项目笔记】TextView字幕效果(3)
查看>>
HDU 1002
查看>>
练习markdown语法
查看>>
python 制作自定义包并安装到系统目录
查看>>
大文件排序问题
查看>>
php实现rar文件的读取和解压
查看>>
2014年天津市第一批科技计划项目
查看>>
@芥末的糖 ---------- node连接数据库两种方式mysql和moogoDB
查看>>
MongoDB 学习笔记2----条件操作符
查看>>
关于Hibernate5.x的那点事
查看>>
sk-learn 选择正确的估算器
查看>>
python操作mysql数据库
查看>>