2014-03-27 1 views
1

현재 ASP.NET MVC4 웹 사이트에서 작업하고 있습니다. 그리고 그 웹 사이트에서 특정 역할을 수행하는 사용자가 코드를 실행할 수 없게됩니다. 나는 다음과 같은 코드를 사용합니다ASP.NET IIS 사용자 역할 인증

[Authorize(Roles = GROUP)] 
    public void Auth() 
    { 
     /* if user is in the domain and signed in 
     * and a member of the above group 
     * they will come here */ 

     username = User.Identity.Name; 

     //Do somthing 
    } 

을 그리고 이것은 잘 작동하지만, 사용자가 도메인 및/또는 그룹의 일부가 아닌 때 사용자 이름과 암호를 묻는 메시지 줘야 해. 프롬프트를 건너 뛰고 해당 사용자를 리디렉션 할 수 있습니까? 이 웹 사이트는 Windows 인증으로 설정 인증을 사용하여 IIS 8의 설치가

입니다

+0

R U 읽어? – Neel

+0

예, Windows 인증으로 설정된 IIS 8에서 – Msmit1993

답변

3

에 대한보기를 sepcify 수

[Authorize(Roles = GROUP)] 
    [HandleError(ExceptionType = typeof(UnauthorizedAccessException), View = "ApplicationError")] 
    public void Auth() 
    { 
     /* if user is in the domain and signed in 
     * and a member of the above group 
     * they will come here */ 

     username = User.Identity.Name; 

     //Do somthing 
    } 

그럼 내가 사용자 정의 인증을 만들 것이다 사용 이 문제를 해결하기 위해 HandleUnauthorizedRequest 메서드를 특성화하고 구현하십시오. 자세한 내용은

public class CustomAutorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     // do authorization logic 
     // ... 


     return (/* isAuthorized */); 
    } 


    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    { 
     UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext); 


     filterContext.Result = new RedirectResult(urlHelper.Action("Index", "Error")); 
    } 
} 

는 Windows 인증을 사용 How to: Create a Custom Authorization Attribute

+1

사용자에게 권한이 없다는 것을 알려주기 때문에 올바른 인증 방법입니다. – Shaz

1

무단 액세스 사용자

+0

제안 해 주셔서 감사하지만 여전히 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. – Msmit1993