【问题标题】:ASP.NET: Cache per userASP.NET:按用户缓存
【发布时间】:2014-10-28 22:41:53
【问题描述】:

使用 ASP.NET,我将数据放入特定于用户的缓存中。该站点使用 Windows 身份验证:

HttpContext.Current.Cache.Insert(....)

这个缓存是否只对用户可用,或者任何使用相同键请求缓存的用户都会得到相同的数据?

【问题讨论】:

  • 如果缓存是用户特定的,则称为会话。

标签: asp.net caching


【解决方案1】:

您可以将用户名作为密钥的一部分,例如“乔.CacheKey1”。由您来解析密钥。

您可能使用 Cache 而不是 Session 的一些原因:

  1. 会话被禁用。
  2. Session 的过期策略不能满足您的需求,但 Cache 可以
  3. 您需要利用 Session 所没有的缓存的某些功能,例如对项目驱逐采取行动,在内存压力时自动驱逐等。

使用 Cache 而不是 Session 的一个不好的原因是您不知道 Session 存在。

【讨论】:

  • 另一个原因:会话可能需要对象可序列化,并且大对象被发送到数据库或其他进程,这很慢。会话只有在使用 InProc 模式时才真正好。
【解决方案2】:

缓存是全局的,因此每次使用都将通过站点访问相同的资源。如果需要会话持久用户数据,可以查看 Session。

【讨论】:

猜你喜欢
  • 2020-05-04
  • 2011-03-03
  • 1970-01-01
  • 2011-07-08
  • 2010-10-08
  • 2010-09-07
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多