을 모두 실행 권한을 부여 여과 및 활동에 대한 필터 인증되지 않은 ASP.NET MVC 요청
-
20-09-2019 - |
문제
나는 내 컨트롤러 기반의 부부와 함께 행동합니다.그들이 잘 작동합니다.
그 중 하나는 필터 설정 요청 같은 작업을 수행합니다 설정한 문화를 기반으로 도메인 등입니다.
나 또한 소수의 작업이 필요한 인증을 사용하여 권한을 부여 특성이 있습니다.
나의 문제는 경우에는 사용자가 페이지를 요청할 권한이 없는 사용자가 액세스 권한 필터에서 차기 및 리디렉션을 페이지를 말하는 것이 아니라는 것을 그들에게 vie 페이지입니다.
문제는 조치 필터를 실행되지 않도록 문화와는 다른 요청은 데이터가 없을 설정합니다.이를 효과적으로 원인 언어를 잘못된 것에 확인하고 다른 데이터 수 없습니다.
내가 알고있는 권한 부여 필터를 실행하지만 나의 질문은 이것입니다:나는 어떻게 디자인이 같은 것을 내가 지킬 수 있는 특정 메소드는 항상을 실행하기 전에 넣은 반환에 관계없이,권한 부여입니다.
이 바랍니다.
해결책
이것에 따르면 선적 서류 비치 (필터 차수 헤더 아래), 권한 부여 필터는 항상 동작 필터 전에 실행됩니다. 이것은 엉망이 된 것을 의미합니다 Order
속성은 도움이되지 않습니다.
이것을 처리하는 가장 좋은 방법은 자신의 승인 속성을 작성하는 것입니다 (서브 클래스 AuthorizeAttribute
그리고 우선 AuthorizeCore
) 및 승인이 실패하면 액션 필터를 수동으로 실행합니다.
다른 팁
보 주문 실행의 행동에 대한 필터 에 MSDN 문서에는 작업 필터
기본적으로,당신은 당신의 제공할 수 있습니다 Order
속에서 그 문화의 필터 실행 기 인증 필터,무언가 이것을 좋아한다:
[CultureRedirect(Order = 1)]
public class MyBaseController : Controller { }
[Authorize(Order = 2)]
public class RequiresAuth : MyBaseController { }
...
실패하는 경우,당신은 아직도 코드를 실행 bfore 작업 실행 하기 전에 ActionFilter 것이 실행됩니다.