如何处理会话状态(HttpContext)中有用户数据的问题以及有人在数据库中更改角色的问题,现在您的会话中包含角色列表与更改中的更改不同步D B?您不希望每次都检查角色。
这是如何处理的?
答案 0 :(得分:0)
假设已在同一个应用程序中进行了更改,您可以在静态属性(可能是字典)上设置排序信号量。然后,在开始请求事件的httpmodule中,检查属性并根据属性值刷新会话数据。
请务必在属性上使用锁定/监视器,以防止多个线程同时访问它。
答案 1 :(得分:0)
用户的会话变量的更改必须由用户启动。如果用户当前已登录,管理员更改其角色,更新现有会话(用户无需加载新页面或开始新请求),我就无法做到这一点。对于角色/和身份验证项,出于安全原因,您可能希望每次加载新页时都执行检查。这样,如果您阻止访问,则效果立即生效,并且在您关闭访问权限后,它们不会保持会话处于活动状态。
对一行数据执行基本选择的小检查不应该杀死您的服务器,除非您收到数十万个服务器功能不足的请求
答案 2 :(得分:0)
使用SqlCacheDependency监视具有角色的表。当表更改时,缓存无效。然后,您可以在缓存中查询角色,而不是db。
http://msdn.microsoft.com/en-us/library/system.web.caching.sqlcachedependency.aspx