2012-01-23 2 views
3

Windows 인증을 사용하는 인트라넷 사이트에서 특정 사용자/그룹 및 역할에 대한 액세스를 제어하는 ​​"AuthorizeAttribute"로 표시된 특정 컨트롤러 메서드에 대해 " 테스트 사용자 "가 이러한 작업에 액세스 할 수 있습니다.AuthorizeAttribute를 사용한 MVC 통합 테스트

< 위치 >은 MVC (보안 문제)가있는 테이블에서 제외되었으므로 여기에서 가장 좋은 방법은 무엇입니까?

내 첫번째 생각은 다음 구현하는 것입니다 :

  1. 본질적으로 < 인증 > 섹션
  2. 에게 사용자 지정 설정에 대해 사용자를 확인 "AuthorizeAttribute"에서 상속 사용자 정의 속성을 반영 사용자 지정 설정 섹션 섹션
  3. QA 및 릴리스 환경에 대한 사용자 지정 구성 섹션을 제거하려면 config 변환을 사용하십시오.

더 쉬운 방법이 있습니까 ???

+2

잘 모르겠습니다. 테스트 사용자를 적절한 그룹/역할에 추가하면 안되며 코드 및 구성에서 아무 것도 변경하지 않아야합니까? –

+0

품질 보증에서는 시험 사용자 전용이므로 네가 한 말이다. 하지만 디버그에서 스테이징까지 테스트 사용자는 보통 저입니다. 그리고 나는 도메인 계정 생성 기능을 부여받지 못했습니다 ... – Didaxis

답변

1

업데이트 내가 원래 클래스 나 메소드에 속성 구문을 사용 쓴, 그러나 당신이 MVC3를 사용하는 경우 당신은 또한 (global.asax.cs)의 글로벌 액션 필터를 사용할 수 있습니다 그래서 당신은 무엇을해야 한 번.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
#if DEBUG 
    filters.Add(new AuthorizeAttribute() {Users="YourAccount"}); 
#endif 
    //Your other global action filters 
} 

원래에만 디버그 코드에 권한을 추가 #if DEBUG를 사용할 수 .

#if DEBUG 
    [Authorize(Users = "YourAccount")] 
#endif 

Authorize 특성은 여러 개를 허용하므로 제작 승인 된 사용자 목록을 반복하거나 #else를 사용할 필요가 없습니다.

+0

Ew, it 's slick! 나는 그것을 좋아한다! – Didaxis

관련 문제