gpt4 book ai didi

asp.net-mvc - 在 ASP.NET(包括 MVC)中使用 session 变量的替代方法

转载 作者:行者123 更新时间:2023-12-03 23:09:26 25 4
gpt4 key购买 nike

如果之前有人问过这个问题,我深表歉意,但我还没有完全找到我脑海中的具体问题。

对于我正在构建的网站(使用 ASP.NET MVC)——性能是一个重要的特性。此外,站点有可能托管在应用程序池每 20 分钟回收一次的环境中(如果达到内存阈值则更快)。我想完全独立于依赖 session 变量,而是将类似 GUID 的值存储在 cookie 中。我的理由是 - 由于 AppPool 回收,我不知道 session 将持续多长时间,并且不希望他们的 session 过早超时并导致他们不得不重复登录。

cookie 中的 GUID 值将充当表的查找键,我在其中存储类似 session 的信息(用户 ID 值等)。因此,如果我需要该数据,我可以从数据库中检索它。我仍然会使用 Session_OnEnd 事件来清除 session 表中“上次事件”值超过 20 分钟(或者配置为持续很长时间的 session )的行。所以我想我仍然会使用 session 状态,而不是 session 变量。

不过,我再次担心的是性能。因此,我很好奇是否有更好的方法来避免使用 session 变量,同时仍然保持了解用户身份的能力,并以“类似 session ”的方式管理他们对站点的访问。我仍然是 MVC 的新手,但多年来在 ASP.NET 方面有丰富的经验,所以我希望我的问题是有道理的!

编辑:我有点不想使用 SQL session 状态,因为我可能会在一个共享的 sql server 托管环境中,并且不认为我会有一个能够创建/运行作业的登录名删除过期的 sql session 数据等是必要的。在 AppPool 回收场景中依赖 Session_OnEnd 和 cookie 是否有任何真正的缺点? AppPool 回收时,Session_OnEnd 是否对当前 session 不执行?

最佳答案

您假设 session 仅存储在工作进程中,您可以拥有 SQL 状态 session ,check this link before going any further

关于asp.net-mvc - 在 ASP.NET(包括 MVC)中使用 session 变量的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869043/

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