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

我的应用程序可以控制用户权限,因为并非所有用户都可以访问完整的网站.在这一刻,特定用户的所有权限都存储在他的会话中,因为我每次发回都会在数据库搜索是个问题.

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

有没有办法通过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指出的那样,如果有多台服务器,则必须保持服务器之间的数据同步.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...