Я хотел бы использовать теги [Authorize (Roles = "Admin")] в моих методах контроллера.
Если пользователь не является администратором, я хотел бы вернуть этого пользователя на экран входа в систему.
Поведение по умолчанию при возвращении пользователя на мою страницу входа в систему - перенаправление моего пользователя на «Учетная запись / Вход» с использованием URL-адреса получения.
Проблема в том, что все подстраницы моего сайта - это частичные просмотры, обновленные Ajax-вызовами, включая мой экран входа в систему.
Итак, мой вопрос:
Можно ли изменить приведенный ниже класс так, чтобы он возвращал переадресацию почты вместо переадресации get?
public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
override public void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
// Only do something if we are about to give a HttpUnauthorizedResult and we are in AJAX mode.
if (filterContext.Result is HttpUnauthorizedResult && filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new RedirectResult("../Account/Login");
}
}
}