Мне нужна помощь в том, как авторизовать доступ к методам JsonResults по ролям. У меня есть примеры кодов ниже с использованием пользовательского атрибута авторизации фильтра, и он отлично работает с методами ActionResults и PartialViewResults, но не с JsonResults. Я хочу найти способ, при котором, если имя роли не имеет доступа к этому методу JsonResults, оно должно быть перенаправлено на неавторизованную страницу или просто не выполняться каким-либо образом, и если у него есть доступ, то он должен выполнить метод, но в этом случае , так себя не ведет. Он не будет выполнять метод JsonResult, даже если у роли есть к нему доступ. Как решить этот тип сценария? Спасибо... Ниже приведены коды, которые я использовал
public class RedirectUnauthorizedRoles : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (this.AuthorizeCore(filterContext.HttpContext))
{
base.OnAuthorization(filterContext);
}
else
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { Controller = "Error", Action = "Unauthorised" }));
}
}
}
Он отлично работает, используя это
[RedirectUnauthorizedRoles(Roles = "MANAGER, ADMIN, SUPPORT")]
public ActionResult Index()
{
return View();
}
но не на этом ниже
[RedirectUnauthorizedRoles(Roles = "MANAGER, ADMIN, SUPPORT")]
public JsonResult GetSpecialData(string param1)
{
// statement here...
}
JsonResult
, он предлагает использовать ajax для вызова этого метода, а вызовы ajax не могут перенаправляться (вся их цель - оставаться на той же странице) - person   schedule 15.02.2018[Authorize(Roles = "..")]
? - person   schedule 15.02.2018