문제

나는 내 컨트롤러 기반의 부부와 함께 행동합니다.그들이 잘 작동합니다.

그 중 하나는 필터 설정 요청 같은 작업을 수행합니다 설정한 문화를 기반으로 도메인 등입니다.

나 또한 소수의 작업이 필요한 인증을 사용하여 권한을 부여 특성이 있습니다.

나의 문제는 경우에는 사용자가 페이지를 요청할 권한이 없는 사용자가 액세스 권한 필터에서 차기 및 리디렉션을 페이지를 말하는 것이 아니라는 것을 그들에게 vie 페이지입니다.

문제는 조치 필터를 실행되지 않도록 문화와는 다른 요청은 데이터가 없을 설정합니다.이를 효과적으로 원인 언어를 잘못된 것에 확인하고 다른 데이터 수 없습니다.

내가 알고있는 권한 부여 필터를 실행하지만 나의 질문은 이것입니다:나는 어떻게 디자인이 같은 것을 내가 지킬 수 있는 특정 메소드는 항상을 실행하기 전에 넣은 반환에 관계없이,권한 부여입니다.

이 바랍니다.

도움이 되었습니까?

해결책

이것에 따르면 선적 서류 비치 (필터 차수 헤더 아래), 권한 부여 필터는 항상 동작 필터 전에 실행됩니다. 이것은 엉망이 된 것을 의미합니다 Order 속성은 도움이되지 않습니다.

이것을 처리하는 가장 좋은 방법은 자신의 승인 속성을 작성하는 것입니다 (서브 클래스 AuthorizeAttribute 그리고 우선 AuthorizeCore) 및 승인이 실패하면 액션 필터를 수동으로 실행합니다.

다른 팁

주문 실행의 행동에 대한 필터MSDN 문서에는 작업 필터

기본적으로,당신은 당신의 제공할 수 있습니다 Order 속에서 그 문화의 필터 실행 인증 필터,무언가 이것을 좋아한다:

[CultureRedirect(Order = 1)]
public class MyBaseController : Controller { }

[Authorize(Order = 2)]
public class RequiresAuth : MyBaseController { }

...

실패하는 경우,당신은 아직도 코드를 실행 bfore 작업 실행 하기 전에 ActionFilter 것이 실행됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top