Положите [Authorize (Roles = "admin")] на просмотр, он работает, поскольку пользователь перенаправляется, однако они всегда перенаправляются на вход в систему, несмотря на то, что они уже вошли в систему. Как я могу изменить это значит, что он переходит на страницу с ошибкой или что-то подобное?MVC Авторизовать роли переходит в режим входа в систему?
ответ
вы можете создать атрибут пользовательских авторизовать как этого
public class CustomAuthorize : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
base.HandleUnauthorizedRequest(filterContext);
}
else
{
filterContext.Result = new RedirectToRouteResult(new
RouteValueDictionary(new { controller = "Home", action = "UnAuthorized" }));
}
}
}
и использовать его как этот
[CustomAuthorize(Roles="admin")]
Надеется, что это помогает
Я буквально положил свой ответ одновременно с этим, но это в основном то, чем я был, поэтому я буду отмечать ваше мнение как правильно. – user1166905
Из интереса вы бы рекомендовали использовать RedirectToRouteResult поверх RedirectResult? Если да, то почему? – user1166905
Я не эксперт, но у меня были проблемы с «RedirectResult» во время повторного факторинга из-за жестко заданных путей. –
Вместо дубликат предложил я код от вопроса : Prevent FormsAuthenticationModule of intercepting ASP.NET Web API responses и модифицировано соответствующим образом:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeCustom : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAuthenticated)
{
filterContext.Result = new RedirectResult("/Error/Unauthorized");
}
else
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;
}
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Затем просто создал представление для маршрута «/ Ошибка/Несанкционированный» и изменил атрибут [Авторизовать] на [AuthorizeCustom]. Теперь неавторизованные пользователи будут перенаправлены на логин, как ожидалось, и люди, не принадлежащие к ролям, перенаправляются на пользовательское представление.
- 1. MVC 3 Авторизовать собственные роли
- 2. Asp.Net MVC C# [Авторизовать (Роли "")] не работает
- 3. Испытания на модуле MVC [Авторизовать (Роли = «Роль»)]
- 4. Авторизовать роли через базу данных
- 5. mvc 4 simpleeroleprovider free ApplicationName после входа в систему
- 6. Несколько уровней [Авторизовать (Роли)] в контроллере
- 7. Авторизовать всех пользователей, у которых нет роли, назначенной в MVC
- 8. Авторизовать, если нет в определенном атрибуте роли MVC 5
- 9. Spring Security: как авторизовать функции без входа в систему
- 10. Вход в систему Microsoft для веб-роли ASP.NET MVC 5
- 11. Публикация данных с AngularJS на [Авторизовать] Действие возвращает страницу входа в систему HTML вместо страницы входа
- 12. Поставщик пользовательской роли не работает - мгновенное перенаправление на страницу входа в систему после входа в систему
- 13. Система входа в систему
- 14. MVC2 Авторизовать роли из SQL
- 15. ASP.net MVC Страница входа в систему/Настройка
- 16. asp.net mvc ошибка входа в систему
- 17. MVC Redirect после входа в систему
- 18. Принудительное HTTPS после входа в систему MVC
- 19. Роли входа в ASP.NET?
- 20. Когда роли, инициализированные в MVC 4? Не после успешного входа в систему
- 21. Получение роли пользователя после входа в систему с FOSUserBundle Symfony2
- 22. Вход в систему для входа в систему Facebook для входа в систему для входа в систему для входа в систему после выхода из системы
- 23. Приложение MVC 4 не переходит на страницу по умолчанию после входа в систему
- 24. Авторизовать атрибут в ASP.NET MVC
- 25. Установить роли пользователя в MVC
- 26. Запретить просмотр входа в систему после входа в систему в ASP.NET MVC
- 27. CakePHP перенаправляет, когда пользователь переходит на страницу входа в систему, когда уже вошел в систему.
- 28. ASP.NET MVC 4.5 - Проблема с пользователем входа в систему (HttpContext.Request.LogonUserIdentity.Name)
- 29. ASP.NET MVC Авторизовать атрибут для запуска модального?
- 30. Как проверить роль пользователя во время входа в систему при нажатии кнопки входа в систему входа в систему?
Когда это перенаправление произойдет? –
Ну, я просто поставил Authorize над представлением контроллера, я хочу сделать доступным только для определенных ролей, поэтому всякий раз, когда этот URL-адрес действительно доступен. На данный момент переход на этот маршрут, а не в роли возвращает вид входа? – user1166905
Возможный дубликат [Как я могу выполнить поиск по неавторизованной странице, если пользователь не находится в Авторизованных ролях?] (Http://stackoverflow.com/questions/2322366/how-do-i-serve-up-an-unauthorized -page-when-a-user-is-not-in-author-role) – CodeCaster