2011-12-16 3 views
0

컨트롤러에 여러 개의 사용자 정의 AuthorizeAttribute을 스택 할 수 있습니까? MVC3 컨트롤러의 스태킹 승인

나는이 같은 일을 시도 :

[IsOwner] 
[IsFranchisee] 
public class CartController : Controller 
{ 
    ... 
} 

을하지만 행동이 불규칙합니다. 때로는 효과가 있으며 때로는 그렇지 않습니다 (주로 후자).

답변

1

구현이 정확합니까? FilterAttributes (AuthorizeAttribute에서 파생 됨)과 함께 보장 된 주문이 없기 때문에 묻습니다. Order 속성을 설정하지 않은 경우입니다.

당신은 행동이 엉뚱하다고 말했기 때문에 나는 하나의 속성이 다른 하나의 속성을 취소 할 수 있다고 생각했습니다. 예를 들어 IsOwner == true 사용자이지만 IsFranchisee == false입니다. 어쩌면 권한이 부여되는지 여부는 어느 것이 먼저 실행되는지에 달려 있습니다.

그래서, 당신은 당신의 속성을 주문 속성을 부여 시도하고 행동이 여전히

+0

그렇게 생각하지 않았다 이상한 경우 볼 수 있었다. 하지만 결국 구현을 변경했습니다. – Ron

3

예. 가능합니다. AuthorizeAttribute에 대한 소스가 마음에 들면 AllowMultiple = true입니다.

1

일반적으로 동적 권한 부여의 경우 컨트롤러 또는 작업에 [Authorize] 주석이 하나 부여 된 다음 컨트롤러 또는 동작 내부에서 권한이 처리됩니다.