确定AJAX请求

我正在使用ActionFilter来确定用户是否有权访问某个特定资源(如帐户对象(la Rhino安全性)),然后再执行操作。 这是一个全局过滤器,如果授权值失败,它将重定向到错误页面

我正在使用以下代码,该代码适用于完整页面请求:

filterContext.Controller.TempData["ErrorMessage"] = string.Format("You are not authorized to perform operation: {0}", operation);
filterContext.Result = new RedirectResult("~/Error/AuthorizationError");

Ajax请求我不想应用重定向,而是返回错误消息。 如果这是一个AJAX请求或一个普通的完整页面(抱歉,不确定正确的术语)请求,有没有一种方法可以告诉Action Filter?

提前致谢

J.P


你可以使用IsAjaxRequest扩展方法:

if (filterContext.HttpContext.Request.IsAjaxRequest())
{
    // it was an AJAX request
    ...
}
else
{
    // it was a standard request
    filterContext.Controller.TempData["ErrorMessage"] = string.Format("You are not authorized to perform operation: {0}", operation);
    filterContext.Result = new RedirectResult("~/Error/AuthorizationError");
}
链接地址: http://www.djcxy.com/p/71799.html

上一篇: Determine if AJAX Request

下一篇: Customizing authorization in ASP.NET MVC