加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET杀死会话按ID

发布时间:2020-12-15 06:28:02 所属栏目:百科 来源:网络整理
导读:我的应用程序可以控制用户权限,因为并非所有用户都可以访问完整的网站.在这一刻,特定用户的所有权限都存储在他的会话中,因为我每次发回都会在数据库中搜索是个问题. 问题是当我删除权限时,用户仍然可以访问该页面,只有当他关闭浏览器时,更新才会生效. 有没有
我的应用程序可以控制用户权限,因为并非所有用户都可以访问完整的网站.在这一刻,特定用户的所有权限都存储在他的会话中,因为我每次发回都会在数据库中搜索是个问题.

问题是当我删除权限时,用户仍然可以访问该页面,只有当他关闭浏览器时,更新才会生效.

有没有办法通过ID杀死特定的应用会话,强制用户再次登录?

解决方法

"Is there a way to Kill an specific Application Session by the ID,forcing user to Log in again?"

否.您只能访问执行当前请求(即自己)的用户的Session对象,而不是其他用户Session对象.

因此,您需要将用户的id存储在其他地方,例如静态集合中.当用户进行下一个请求时,您可以检查该集合中的id,并更新权限或注销用户.

另一个替代方案是将所有当前登录用户的权限对象保留在静态集合以及其Session变量中.这样,您就可以在不访问该用户的Session对象的情况下更改权限对象.

当然,在Web应用程序中使用静态变量也有通常的预防措施.由于多个线程可以访问它,所以访问必须被同步.另外,正如Alexei Levenkov指出的那样,如果有多台服务器,则必须保持服务器之间的数据同步.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读