我知道如何检查客户端浏览器是否支持Cookie:
filterContext.RequestContext.HttpContext.Request.Browser.Cookies
所以我把这段代码放到了OnActionExecuting(ActionExecutingContext filterContext)
方法中。
但我不希望每次用户发出请求时都检查客户端浏览器。
有没有办法只在项目的任何地方检测一次此信息?
这里是完整的代码:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
HttpContext.Application["AlertOverCookies"] = null;
if (!filterContext.RequestContext.HttpContext.Request.Browser.Cookies)
{
HttpContext.Application["AlertOverCookies"] = "Browser does not support Cookies!";
filterContext.Result = RedirectToAction("Index", "Home");
}
}
答案 0 :(得分:2)
访问filterContext.RequestContext.HttpContext.Request.Browser.Cookies
非常便宜。因此,没有必要减少对它的调用次数。
HttpContext.Application
这是一个错误。这是一个全局集合,将在请求和会话之间共享。