보기에 [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
RedirectResult보다 RedirectToRouteResult를 사용 하시겠습니까? 그렇다면 왜? – 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);
}
}
}
그런 다음 "/ Error/Unauthorized"경로에 대한보기를 만들고 [Authorize] 속성을 [AuthorizeCustom]으로 변경했습니다. 이제 인증되지 않은 사용자는 예상대로 로그인하도록 리디렉션되고 역할이없는 사용자는 사용자 지정보기로 리디렉션됩니다.
- 1. ASP.NET MVC 프로젝트 인증/권한 부여
- 2. MVC 인증 및 권한 부여
- 3. MVC RESTful 서비스 권한 부여
- 4. Asp.Net MVC 권한 부여 옵션
- 5. mvc 권한 부여 또는 인증
- 6. Oracle Apex의 권한 부여 및 사용자 역할은 무엇입니까?
- 7. MVC 인증/권한 부여 솔루션에 대한 도움말
- 8. 역할 기반 권한 부여
- 9. MVC 4의 로그인보기로 리디렉션하는 방법
- 10. 데이터베이스에 권한 및 권한 부여 논리 부여
- 11. MVC 3 멤버쉽 및 권한 부여
- 12. ASP.Net MVC 4에서 관리자 권한 부여
- 13. Mvc 권한 부여 특성이 작동하지 않습니다.
- 14. ASP.NET MVC 권한 부여 - 작동하지 않음!
- 15. ASP.NET MVC 3 사용자 정의 권한 부여
- 16. 데이터베이스에서 MVC 사용자 지정 권한 부여 특성
- 17. MVC 4 권한 부여 및 로그인 사용
- 18. asp.net mvc [핸들러] [권한 부여] with JsonResult?
- 19. MVC 권한 부여 특성 + HttpUnauthorizedResult + FormsAuthentication
- 20. MVC 사용자 정의 권한 부여 속성
- 21. ASP.NET MVC 5 권한 부여 요청 처리
- 22. ASP.Net/MVC 권한 부여 대 인증합니다
- 23. ASP.NET MVC 3 인증/권한 부여
- 24. MVC 동적 페이지 권한 권한 부여 특성 사용?
- 25. MVC Windows 인증 - 전체 사이트에 대한 권한 부여 (사용 권한)
- 26. ASP.NET MVC 권한 부여 및 모델 클래스 사용 권한
- 27. MySQL 권한 부여 오류 권한
- 28. MVC3의 권한 기반 권한 부여
- 29. 사용자보기 권한 JIRA 부여 권한
- 30. 권한 기반 권한 부여 .net ID
언제이 리디렉션이 발생해야합니까? –
글쎄, 컨트롤러 뷰 위에 Authorize를 두는 것만으로도 그 URL에 실제로 액세스 할 때마다 특정 역할에만 사용 가능하게 만들고 싶습니다. 해당 경로로 이동하고 역할에 있지 않은 순간에 로그인보기가 반환됩니까? – user1166905
[사용자가 승인 된 역할을 수행하지 않은 경우 권한이없는 페이지를 어떻게 제공합니까?] (http://stackoverflow.com/questions/2322366/how-do-i-serve-up-an-unauthorized -page-when-a-user-not-authorized-role) – CodeCaster