方案: 我们正在使用azure redis会话提供程序。首次加载页面时,从外部API检索数据并将它们存储在红色会话中。
相同会话数据通过用户会话中的不同页面和组件进行检索。问题是:
应用程序是否仅获取会话数据一次并存储本地http当前上下文?或者每次进入redis商店?
如果我们在set上加密数据并在Get操作上解密数据怎么办?
感谢。
答案 0 :(得分:1)
页面通过将@Page指令的EnableSessionState属性设置为true来声明对会话状态的写访问权。 (这是默认设置。)但是,页面也可以对会话状态具有只读权限,例如,当EnableSessionState属性设置为ReadOnly时。在这种情况下,模块将在会话上保持读取器锁定,直到对该页面的请求结束。因此,可能会发生并发读数。
如果页面请求设置了读取器锁定,则同一会话中的其他同时处理的请求不能更新会话状态,但至少允许读取。这意味着当提供会话只读请求时,等待只读请求的优先级高于需要完全访问权限的请求。如果页面请求在会话状态上设置写入程序锁定,则无论是否必须读取或写入,都会阻止所有其他页面。例如,如果两个帧尝试写入Session,则其中一个帧必须等到另一个帧完成。
StackExchange.Redis只是HttpSessionState模块的包装器(或抽象)