gpt4 book ai didi

asp.net - 如何强制状态服务器丢弃所有 session ?

转载 作者:行者123 更新时间:2023-12-02 14:16:01 24 4
gpt4 key购买 nike

我有一个 ASP.NET Web 应用程序,它使用状态服务器来存储其 session 。当我们更改存储在 session 中的某些内容的类型时,所有具有事件 session 的用户都会出错,因为“旧 session ”包含“旧类型”的实例。

我认为解决这个问题的最简单方法是重新启动状态服务器,从而摆脱所有 session 。然而,这被认为是一种幼稚的做法。 session 似乎仍然处于事件状态(具有 session 旧 cookie 的用户仍然能够工作)。 是否有其他方法可以强制 session 状态服务器丢弃所有 session ,以便为旧用户分配新 session ?如果强制他们再次进行身份验证,也可以。

或者是否有其他(更好)的方法来放弃所有 session ?理想情况下不是以编程方式,但我们的管理员可以做些什么?

编程方法也许可以在 Application_End 中调用 Session.RemoveAll 来解决问题,但是这是标准方法吗?

session 如果不在内存中,则存储在状态服务器中的何处(重启后应不再存在)?

我发现了两个相关的问题:

Clear all sessions on application start - 这是相当不完整的编程解决方案

How to clear SQL session state for all users in ASP.NET - 如果我有一个 sql 服务器方法来存储 session 数据,这正是我所需要的

最佳答案

好吧,看来(经过一些实验), session 状态服务器的重新启动会丢弃 session 中的所有数据。

不过,用户在重新启动后其 session ID 仍然有效,这让我最初认为 session 没有被丢弃。

我猜想,如果用户发送的 session ID 没有分配给某个现有 session ,那么它会被重新用于新 session ,因此用户仍然使用相同的 id 进行操作。尽管如此, session 中的数据还是被清除了。

关于asp.net - 如何强制状态服务器丢弃所有 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457165/

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