2014-04-25 2 views
0

C# 또는 mvc에 권한없는 사용자를 입력하려고 할 때 보낸 페이지로 쉽게 리디렉션 할 수 있는지 묻고 싶습니다. 페이지에 로그인해야합니까?MVC 4 사용자가 승인되지 않은 후에 로그인 페이지에서 이전 페이지로 리디렉션합니다.

나는 이미 거대한 웹 응용 프로그램을 가지고 있으며 무단 사용의 경우 페이지 방향 문자열로 모든 단일 메서드를 너무 많이 사용하는 게 너무 게으른 편입니다. 그래서 가능하다면 나는 다른 방법을 선택하고, 변화에 대해 더 호의적이다.

내가 AuthorizeAttribute로부터 상속 사용자 정의 클래스를 사용하는 순간에 허가를 들어

:

public class CustomAuthorizationAttribute : AuthorizeAttribute 
{ 
    public RolesEnum[] RequiredRoles; 

    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     if (httpContext == null) throw new ArgumentNullException("httpContext"); 
     if (!httpContext.User.Identity.IsAuthenticated) return false; 
     if (RequiredRoles.Contains(AzaraSession.Current.UserComparison.GetRole())) return true; 
     else return false; 
    } 
} 

답변

0
우리가 인증 페이지로 리디렉션하기 전에 세션에서 라우팅 경로를 저장하고 즉시 세션의 도움으로 인증 후에 우리는 다시 리디렉션 할 수

,

이 코드는 한 번 변경됩니다.

감사합니다. 문제가 생기면 알려주세요.

+0

이 답변은 다소 모호합니다. 예제를 사용해보십시오. –

0

AuthorizeAttribute에서 매우 쉬운 해결책을 직접 발견했습니다. 실패한 로그인 페이지의 URL이있는 매개 변수 'returnUrl'을 작성합니다. 그래서 난 그냥 'LogOn'메서드 에서이 매개 변수를 데리고 '리디렉션'이 페이지에 로그인이 작동 후 필요합니다.