gpt4 book ai didi

asp.net - session变量清除方法只会清除当前浏览器session吗?

转载 作者:行者123 更新时间:2023-12-05 01:26:39 24 4
gpt4 key购买 nike

注销点击使用以下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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com