2012-04-20 5 views
0

MVC3 애플리케이션에서 글로벌 인증을 위해 AuthorizeAttribute에서 파생 된 클래스를 사용하고 있습니다.인증 실패 원인을 찾는 방법

[CtsAuthorize(Roles = "systemadmin")] 
public class CompanyController : CtsController 

내가로 리디렉션하고 싶습니다 :이 같은 컨트롤러에서보다 구체적인 인증 필터를 배치 시작하려는 filters.Add(new CtsAuthorizeAttribute());

이제 사용자 지정 역할 공급자를 구현 한을 통해 글로벌 필터로 사용 역할 기반 인증 실패에 대한 메시지 페이지 (이상적으로는 실패한 페이지의 모델 등록 정보 수정)가 로그인 기반 실패에 대한 로그인 페이지의 기본 리디렉션을 보존합니다. 아래에서 재정의 할 때 승인 실패의 이유를 어떻게 결정할 수 있습니까?

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
{ 
    base.HandleUnauthorizedRequest(filterContext); 
} 

'역할의 사용자'체크를 복제 할 수 있지만 바로이 필터로 수행되었습니다. 필터에서 이것을 어떻게 배울 지 알 수 없습니다.

+0

"승인 실패"는 무엇이라고 생각하십니까? 이것으로 인증 실패를 그룹화합니까? –

+0

@JeremyHolovacs처럼 전역 필터를 사용하면 요청이 인증되지 않고 사용자가 지정된 역할을 수행하지 않을 때 'Roles'필터를 적용 할 때 오류가 발생합니다. – ProfK

+0

인증과 권한 부여를 구별하지 않은 MS 보안 프레임 워크에 실패했습니다. 이는 매우 다른 것입니다. 짧은 대답은 사용자가 인증되었는지 (상황에 따라 사용 가능해야 함) 확인한 다음 역할을 확인하는 것입니다. 이것이 당신이 찾고있는 세밀도 수준입니까? –

답변

0

제공된 컨텍스트 인수를 통해 사용자의 인증 여부를 확인할 수 있습니다. 역할은 국지적으로 결정될 수 있습니다.

+0

고마워. 역할을 결정할 필요는 없지만 속성은 이미 HandleUnauthorizedRequest를 호출하기 전에이를 수행합니다. – ProfK

관련 문제