gpt4 book ai didi

asp.net-core - asp.net 核心 session 不是特定于用户的吗?

转载 作者:行者123 更新时间:2023-12-05 00:17:27 25 4
gpt4 key购买 nike

当我使用经典的 ASP.NET 或什至使用旧的 Web 表单时,HttpContext.Current.Session 是特定于用户的。因此,当用户发出请求时,他会收到 session cookie,然后该 session 仅属于该用户。因此,两个不同的用户可以在各自的 session 中拥有同名的 session key 。

我正在阅读 ASP.NET Core 中的 session 文档,看起来它与旧的 asp.net 具有相同的概念,但是文档中的某些注释令人困惑。
here它说

Session storage relies on a cookie-based identifier to access data related to a given browser session (a series of requests from a particular browser and machine). You can’t necessarily assume that a session is restricted to a single user, so be careful what kind of information you store in Session. It is a good place to store application state that is specific to a particular session but which doesn’t need to be persisted permanently



还有 here它说

Session is non-locking, so if two requests both attempt to modify the contents of session, the last one will win. Further, Session is implemented as a coherent session, which means that all of the contents are stored together. This means that if two requests are modifying different parts of the session (different keys), they may still impact each other.



所以可以说我已经登录了 User1 并且我设置了一些操作
 `Session.SetInt32("key1", 123)`

现在 User2 从其他机器登录,并根据我设置的某些操作
 `Session.SetInt32("key1", 999)`

问题 1
这会覆盖 User1 的 key 吗?

另请注意 here

ASP.NET ships with several implementations of IDistributedCache, including an in-memory option (to be used during development and testing only)



问题 2
我可以在生产中使用的 IDistributedCache 的其他实现是什么?

最佳答案

对于问题 1。

,修改 session key 的用户不会覆盖其他用户的 key 。由于创建了 .AspNetCore.Session cookie, session 对于每个访问者/用户都是唯一的。

所有 Session.Set 调用都按照该唯一标识符进行存储。

关于asp.net-core - asp.net 核心 session 不是特定于用户的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40293432/

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