注销点击使用以下session变量清除方法
Session.Clear();
Session.RemoveAll();
Session.Abandon();
如果我在两个浏览器中打开我的网站并从一个浏览器注销。 session 变量不会在第二个浏览器中清除。因此它不会重定向到注销。
上面提到的方法只会清除当前浏览器 session 变量吗?删除所有浏览器 session 的有效方法是什么?
最佳答案
一般来说,当两个浏览器连接到你的网站时,会有两个不同的 session 被实例化。每个 session 中的信息都独立于所有其他 session 。因此,当您删除/清除 session 时,只有当前 session 会受到影响。
要销毁所有 session ,假设您正在为 session 状态使用 InProc 模式(还有其他模式 => https://msdn.microsoft.com/en-us/library/ms178586(v=vs.140).aspx),您可以通过重新启动应用程序池来销毁所有 session 。有some examples on MSDN site .
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
foreach (ApplicationPool applicationPool in applicationPoolCollection)
{
//...
applicationPool.Recycle();
//...
}
// CommitChanges to persist the changes to the ApplicationHost.config.
serverManager.CommitChanges();
P/s:ServerManager 类驻留在 Microsoft.Web.Administration 中包裹。此行为不应在注销事件中实现。
也有重启应用程序池的选项
- 修改web.config文件
- 升级一个新的 .dll 文件
- 使用 IIS 管理器
关于asp.net - session变量清除方法只会清除当前浏览器session吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241673/