Один из таких хакерских методов это сделать VaryByCustom (вместо VaryByParam) и сделать там .ToLower / .ToUpper.
Измените директиву OutputCache на что-то вроде этого:
<%@ OutputCache Duration="300" VaryByCustom="Company" VaryByParam="none" %>
... и добавить переопределение в Global.asax.cs для GetVaryByCustomString:
public override string GetVaryByCustomString(System.Web.HttpContext context, string custom)
{
string CustomValue = "";
switch (custom.ToLower())
{
case "company":
CustomValue = context.Request.QueryString["company"] ?? "";
CustomValue = CustomValue.ToLower();
break;
}
return CustomValue;
}