You have to use VaryByCustom parameter. Your OutputCache directive will look like this
and you have declare the following method in which we access the Cookie and pass the value back
Given this method, you should be able to cache based not only on cookies, but any other string value or anything that can be converted into a string.
<%@ OutputCache Duration="600" VaryByCustom="StyleSheet" %>
and you have declare the following method in which we access the Cookie and pass the value back
public override string GetVaryByCustomString(System.Web.HttpContext context, string custom) {
if (custom == "StyleSheet"){
return "StyleSheet=" + this.Request.Cookies["StyleSheet"];
}
}
Given this method, you should be able to cache based not only on cookies, but any other string value or anything that can be converted into a string.