我有一个ASP.NET MVC应用程序。我需要缓存一些页面,但是,对于未经认证的用户,只有。
我尝试在下面的GetVaryByCustomString
实现中使用VaryByCustom="user"
:
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom == "user")
{
if (context.User.Identity.IsAuthenticated)
{
return context.User.Identity.Name;
}
else
{
return "";
}
}
return base.GetVaryByCustomString(context, custom);
}
然而,这并不是我所需要的,因为页面仍然被缓存。唯一不同的是,现在为每个用户单独缓存。
一种可能的解决方案是每次用户通过身份验证时都返回Guid.NewGuid()
,但在我看来这是对资源的巨大浪费。
你有什么建议给我吗?
https://stackoverflow.com/questions/2109928
复制相似问题