微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面

为每个session页配制缓存是通过 @ OutputCache 指令的属性 varyByCustom 来实现的。按照下面的脚本(包含到一个.aspx文件中),花上10秒钟就可以为各个session ID用户配制独立的页面版本。

<%@ OutputCache Duration="10" varyByParam="None" varyByCustom="SessionID" %>

要用到 varyByCustom="SessionID" ,就要在在服务器的根目录下有Global.asax文件,在文件中声明以下用法

<script language="C#" runat="server">
  public override string GetvaryByCustomString(HttpContext context, string arg)
  {
      if (arg.ToLower () == "sessionid") {
          HttpCookie cookie =
           context.Request.Cookies["ASP.NET_SessionId"];
           if (cookie != null)
              return cookie.Value;
      }
      return base.GetvaryByCustomString (context, arg);
  }
</script>

GetvaryByCustomString 是ASP.NET页面输出缓存的基础。它继承于HttpApplication,返回从session cookie得到的session ID。用户调用GetvaryByCustomString时会被关联到一个session。

这个技术的缺点是不能用于不支持cookie的用户。另外,用户只有在第二次发出申请时才能获得缓存,因为第一次请求没有合法的session cookie。

http://www.cnblogs.com/xiaotaoliang/archive/2005/10/30/264727.html

 

请问@OutputCache是用于单独一个用户的,还是所有用户

可以缓存到不同的地方,而引响的用户也不同,如果缓存在客户端,就针到个人用户,   如果缓存在服务器,那就是针对所有用户,也可以缓存在代理服务器上面。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐