首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角色与用户会话不同步

角色与用户会话不同步
EN

Stack Overflow用户
提问于 2012-02-10 00:37:16
回答 3查看 178关注 0票数 2

如何处理这样的问题:用户数据处于会话状态(HttpContext),有人在数据库中为他们更改了角色,而现在您的会话(包含角色列表)与数据库中的更改不同步?你不想每次都访问数据库来检查角色。

这是如何处理的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 01:37:10

使用SqlCacheDependency监视包含角色的表。当表发生更改时,缓存将失效。然后在缓存中查询角色,而不是数据库。

http://msdn.microsoft.com/en-us/library/system.web.caching.sqlcachedependency.aspx

票数 0
EN

Stack Overflow用户

发布于 2012-02-10 00:46:00

假设更改是在同一应用程序中进行的,您可以在静态属性(可能是字典)上设置某种信号量。然后,在begin request事件的httpmodule中,检查属性并根据属性值刷新会话数据。

确保在属性上使用锁/监视器,以防止多个线程同时访问它。

票数 0
EN

Stack Overflow用户

发布于 2012-02-10 00:50:04

对用户会话变量的更改必须由用户启动。据我所知,如果用户当前登录,并且管理员更改了他们的角色,则没有办法更新他们现有的会话(而用户既不加载新页面,也不开始新请求)。对于角色/和身份验证项,出于安全原因,您可能希望在每次加载新页面时执行检查。这样,如果您阻止访问,效果是立即的,并且在您关闭访问后,它们不会保持会话活动。

一个对一行数据执行基本select的小检查不应该杀死您的服务器,除非您收到数十万个对性能不足的服务器的请求

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9214895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档