OutputCache controller attribute vary by user role? Is this possible in .net MVC?
Is it possible to output cache controller actions differently based on user role? or if they are authenti开发者_开发技巧cated or not?
Take a look at VaryByCustom.
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.getvarybycustomstring.aspx
[Careful: This answer was valid as of 2011]
We add the OutputCache directive like this:
<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="SessionID" %>
In MVC, add this attribute to your action
[OutputCache(Duration = 60, VaryByParam="None", VaryByCustom="SessionID")]
Then, in the Global.asax file
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);
}
精彩评论