Вы можете создать свой собственный атрибут AuthorizeUser и переопределить HandleUnauthorizeUser (..).
Затем вы можете проверить, является ли запрос запросом ajax, а затем вернуть jsonresult с правильным значением, которое может быть прочитано JavaScript в представлении.
Попробуйте следующий код. (Я еще не проверял)
public class CustomAuthorizeUserAttribute:AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var result = new JsonResult();
result.Data = new
{
responseCode = 401,
loginUrl = FormsAuthentication.LoginUrl
};
filterContext.Result = result;
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}
используйте его вместо атрибута [Authorize] в действиях контроллера.