по умолчанию У меня есть следующий:MVC5 [Авторизоваться] перенаправлять маршрут вместо атрибута маршрута
[Route("whitelist")]
[Authorize(Roles = "Administrator")]
public ActionResult Whitelist() {
var vm = new WhitelistViewModel();
return View(vm);
}
[Route("login")]
[AllowAnonymous]
public ActionResult Login(string returnUrl) {
ViewBag.ReturnUrl = returnUrl;
return View();
}
Однако, когда я перейти к /whitelist
как неаутентифицированному пользователю, я получаю навигацию к/счету/Login, который инвалид. Как сообщить MVC5 использовать маршруты атрибутов при перенаправлении в этом случае?
Почему это недействительно? У вас есть '[Authorize (Roles =" Administrator ")]' в '' Whitelist() ', поэтому, если вы не авторизованы, вы будете перенаправлены на' Login() '. Что вы ожидаете? –
@StephenMuecke это недействительно, потому что маршрут к Login - это «логин», как переопределенный с помощью маршрутизации атрибутов. – user666
Пожалуйста, посмотрите на это http://stackoverflow.com/questions/7080872/redirect-authorization-failure-in-mvc Переопределить OnActionExecuting. Мы можем сделать много вещей в этом действии, подобно тому, как мы делаем что-то в предварительной загрузке страницы до page_load. –