VaryByCustom
Vary the output cache either by browser name and version or by a custom string, which must behandled in an overridden version of GetVaryByCustomString().
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestLab._Default" %>
<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="prefs"%>
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace TestLab
{
public class Global : System.Web.HttpApplication
{
public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg.ToLower() == "prefs ")
{
HttpCookie cookie = context.Request.Cookies["Language"];
if (cookie != null)
{
return cookie.Value;
}
}
return base.GetVaryByCustomString(context, arg);
}
protected void Application_Start(object sender, EventArgs e)
{
}
VaryByHeader
A semicolon-separated list of strings representing headers submitted by a client.
VaryByParam
A semicolon-separated list of strings representing query string values in a GET request or variables in a POST request. This is a required attribute.
VaryByControl
A semicolon-separated list of strings representing properties of a user control used to vary the output cache (applicable to user controls only).