2010-07-07 4 views
1

그래서 난 내 컨트롤러 이상이 설정 : [권한 부여 (역할 = "관리자")]ASP.Net/MVC 권한 부여 대 인증합니다

문제는 그들이 로그인하지 않은, 또는이없는 여부 올바른 역할이면 로그인 페이지로 리디렉션됩니다. 인증을 처리하고 다르게 인증하는 방법이 있습니까?

답변

1

나는 당신을 명확하게 이해하지 못할지 모르지만, 인증과 권한 부여는 항상 함께 있습니다. 어떤 메커니즘이 사용자 (양식, 창문 등)를 인증하는 데 사용되는지, 어떤 역할이나 사용자가 내용을 볼 수 있는지를 말합니다. ..

웹 구성에 인증 방법이 설정되어있는 한 고정되어 있으며 컨트롤러 메서드를 보호하기 위해 사용할 수 있다고 생각하는 것은 이러한 특성을 넣는 것입니다.

또한 다른 용도로 사용하려는 경우, f.e.

public class RedirectAuthorizeAttribute : AuthorizeAttribute 
{ 
    public string RedirectUrl { get; set; } 

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    { 
     filterContext.Result = new RedirectResult(RedirectUrl); 
    } 
} 

다음은 그와 같은 컨트롤러 방법에 넣어 : 당신이 코드를 사용할 수 있습니다 페이지를 diffrent로 리디렉션 그들은 로그인하지 않은 경우

[RedirectAuthorize(Roles = "MyRole", RedirectUrl = "SomeUrl")] 
    public ActionResult SomeAction() 
    { 
     ... 
    } 
+0

내 말은, 내가 그들을 보내려면 로그인 페이지로 이동하지만 올바른 역할이없는 경우 다른 곳으로 보내려고합니다. – Jhorra

+0

그래서 내가 작성한 코드는 잘되어야합니다 .. –

+0

도움을 주셔서 감사합니다. – Jhorra