每个用户和匿名来宾的MVC 5主页输出缓存

毕晓普

作为DonutCache的替代方案,没有人看到以下输出缓存方法有任何问题。它似乎可以在不暴露任何用户数据的情况下正常工作,并且根据时间戳测试为每个人正确地缓存了页面,这是我最大的担忧。我只想介绍一下自己的基础,然后再在实时网站上实施它。

在Glogal.asax.cs中

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

    return base.GetVaryByCustomString(context, arg);
}

在Web.config中

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="HomePage" duration="86400" varyByParam="*" varyByCustom="User" location="Server" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

* n控制器

 [OutputCache(CacheProfile = "HomePage")]
 public ActionResult Index()
 {
    return View();
 }

参考解决方案:每个用户的输出缓存

线虫

您的方法依赖于用户名(通常映射到其给定名称)对于所有用户而言都是唯一的,并且没有实际用户使用“来宾”这个名称。

更好的方法是将其映射到该用户的应用程序内部ID。

if (arg == "User")
{
    if (context.User.Identity.IsAuthenticated)
    { 
        return $"User={context.User.Identity.GetUserId()}";
    }
    else
    {
        return $"User={int.MinValue}";
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

清除MVC 6 / ASP.NET 5中的输出缓存

来自分类Dev

MVC 5更改主页

来自分类Dev

输出缓存过期会导致WebApi请求(MVC5 / webapi2)突然增加

来自分类Dev

Symfony2-用户注销后的主页缓存

来自分类Dev

在Django中缓存匿名用户

来自分类Dev

MVC输出缓存未在服务器中缓存

来自分类Dev

为非会话用户输出缓存代码

来自分类Dev

LARAVEL 5 ::在主页上显示“用户名”?

来自分类Dev

如何在ASP.Net MVC 5中跟踪匿名用户的活动?

来自分类Dev

删除ASP.NET Webforms中用户控件的输出缓存

来自分类Dev

MVC:为所有操作添加输出缓存

来自分类Dev

MVC 4.0使用HttpResponse.RemoveOutputCacheItem清除输出缓存

来自分类Dev

输出缓存时间而不是持续时间MVC

来自分类Dev

MVC 4.0使用HttpResponse.RemoveOutputCacheItem清除输出缓存

来自分类Dev

MVC:为所有操作添加输出缓存

来自分类Dev

输出缓存时间而不是持续时间MVC

来自分类Dev

PHP APC-操作码缓存和基于文件的输出缓存

来自分类Dev

WebApi 2和MVC 5用户的路由属性是否不同?

来自分类Dev

在每个用户的Rails中使用片段缓存

来自分类Dev

在每个用户的Rails中使用片段缓存

来自分类Dev

加载MVC5剃须刀中每个用户的角色列表

来自分类Dev

仅在主页命中时触发连接池-ASP.NET MVC5实体框架

来自分类Dev

延迟问题:从 Aps.net 站点到 MVC 5 站点主页的页面加载性能

来自分类Dev

如何使用ASP.NET 5和MVC 6缓存静态内容?

来自分类Dev

如何使用ASP.NET 5和MVC 6缓存静态内容?

来自分类Dev

OpCache-了解每个用户或每个资源的缓存如何工作?

来自分类Dev

MVC 5:自定义AuthorizeAttribute和缓存

来自分类Dev

缓存部分视图Asp.net MVC 5

来自分类Dev

ASP.NET MVC 5数据缓存-行为异常

Related 相关文章

热门标签

归档