微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/csharp/95498.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐