gpt4 book ai didi

c# - 基于登录用户缓存部分

转载 作者:行者123 更新时间:2023-12-04 05:23:53 26 4
gpt4 key购买 nike

我有一个带有大约 20 个 Controller 的 MVC 应用程序。

在此应用程序中,我想将某些 View (主要是部分 View )缓存 60 秒,即结果每分钟仅更改一次,即使基础数据在那分钟内发生更改。

看起来很简单。

复杂的是,部分显示取决于当前登录用户的不同数据。如何确保缓存是每个用户使用 MVC3 的?

最佳答案

您可以使用 OutputCacheAttribute在 Controller 或逐个操作的基础上影​​响输出缓存,并使用 VaryByCustom .

[OutputCache(Duration = 60, VaryByParam = "*", VaryByCustom="userName")]

把它放在 Controller 上,然后进入你的 Global.asax.cs 并覆盖 GetVaryByCustomString :
public override string GetVaryByCustomString(HttpContext context, string arg) 
{
if(arg.ToLower() == “username” && context.User.Identity.IsAuthenticated) return context.User.Identity.Name;

return base.GetVaryByCustomString(context, arg);
}

关于c# - 基于登录用户缓存部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416901/

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