MVC3

2011-08-24 6 views
0

의 역할 권한을 부여 사용자 지정 설정은 현재 내 컨트롤러는 다음과 같습니다MVC3

public class ProductBrandsController : Controller 

나는뿐만 아니라 전체 컨트롤러 자체에, 나는 각 작업에 [Authorize] 장식을 적용 할 수있는 온라인 읽었습니다.

그래서 그렇게 같이 호출 할 사용자 정의 장식을 선언 할 수있는 방법이 있나요 :

[Authorize(Roles = "God")] 
public class ProductBrandsController : Controller 

아니면이 너무 cumborsome의가. 나는 새로운 장식을 만드는 등처럼 호출 상관 없어 :

[Administrator] 
public class ProductBrandsController : Controller 

//Or 

[ContentManager] 
public class ProductBrandsController : Controller 

가 그럼 난 로그인있어 사용자가 역할에 있는지 확인하기 위해 사용자 정의 클래스를 만들 것이다.

이 접근 방법에 대한 제안 사항은 무엇입니까?

답변

1

물론, ActionFilterAttribute에서 파생되어야합니다.

public class AdministratorRequiredAttribute : ActionFilterAttribute 
{ 
     override OnActionExecuting() { } 
     override OnActionExecuted() { } 
     override OnResultExecuting() { } 
     override OnResultExecuted() { } 
} 

당신은 사용자의 인증을 확인하는 로직을 삽입 할 OnActionExecuting 방법을 대체 할 수 있습니다; 충분하지 않은 경우 사용자를 컨텍스트 개체를 사용하여 작업 메서드 밖으로 리디렉션 할 수 있습니다.

+0

예제 클래스 이름을 사용하면 내 데코레이터는 다음과 같습니다.'[AdministratorRequired]'? 또는 무엇을? 완성을 위해 그것을 채우기를 원할 수도 있습니다. :) –

+0

수정. 이 속성은'[AdministratorRequired]'또는'[AdministratorRequiredAttribute]'로 사용될 수 있습니다 - 속성 이름을 생략 할 수있는 속성 이름은 무언가를 장식 할 때 사용법입니다. – Tejs

+0

어떻게 리디렉션합니까? –