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

前端之家收集整理的这篇文章主要介绍了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指出的那样,如果有多台服务器,则必须保持服务器之间的数据同步.

猜你在找的C#相关文章