创建过滤器
public class BasicAjaxAuthAttribute : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (IsAjaxRequestAndNonExistsSession(filterContext))
{
AlertMessage(filterContext);
}
}
private bool IsAjaxRequestAndNonExistsSession(AuthorizationContext filterContext)
{
return filterContext.HttpContext.Request.IsAjaxRequest() && filterContext.HttpContext.Session == null;
}
private void AlertMessage(AuthorizationContext filterContext)
{
ContentResult errorResult = new ContentResult();
errorResult.Content = new AjaxResult { state = ResultType.error.ToString(), message = "长时间未操作,请重新登录。" }.ToJson();
filterContext.Result = errorResult;
}
}
应用在Action方法上
[BasicAjaxAuth]
public ActionResult DeleteUser(string userId)
{
...
}