gpt4 book ai didi

c# - 当我在输出缓存中使用它或缓存错误时,VaryByCustom 是否不起作用?

转载 作者:行者123 更新时间:2023-11-30 19:05:40 27 4
gpt4 key购买 nike

我花了一整天的时间来找出问题,但我不能:这是问题所在:在我有输出缓存属性的操作上:

[OutputCache(Duration = 600, VaryByParam = "*", VaryByCustom = "User")]

我还像这样重写了 Global.asax:

public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg == "User")
{
return "User=" + context.User.Identity.Name;
}

return base.GetVaryByCustomString(context, arg);
}

但是当我第一次登录时它会缓存这些值,然后当我尝试注销并以不同的用户身份再次登录时我会看到之前的缓存值。在调试时我检查了 Identity.Name 为第一个用户返回正确的结果它是“admin”对于第二个用户它是“kate”

最佳答案

我找到了答案。我不得不输入:Location = OutputCacheLocation.Server,在另一种情况下它缓存在错误的客户端。

所以 outputcache 属性应该是这样的:

[OutputCache(Duration = 600, VaryByParam = "*", VaryByCustom = "User", Location = OutputCacheLocation.Server)]
public ActionResult Index(<my parameters>)

关于c# - 当我在输出缓存中使用它或缓存错误时,VaryByCustom 是否不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588768/

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