개발중인 응용 프로그램의 필터 중 하나는 사용자가 변경하려는 항목을 소유하고 있는지 확인합니다. 액션은 [RequiresOwnership]
속성으로 꾸며졌으며 속성 로직 내부에서 사용자가 아이템을 소유하고 있는지 확인하고 그렇지 않은 경우 UnauthorizedAccessException
을 던집니다..NET의 MVC에서 필터에 의해 throw 된 예외를 잡는 방법?
내 질문은 : 어디에서 예외를 잡을 수 있습니까? 예외 페이지를 표시하는 대신 사용자가 시도한 내용이 허용되지 않는 이유를 설명하는 페이지로 사용자를 리디렉션하는 것이 이상적입니다. 나는 속성에 의해 장식 된 액션 내부에서 예외를 잡아낼 것이라고 생각하지 않는다. 그래서 .NET MVC 모델에서 예외를 처리 할 수있는 애플리케이션의 기본 부분이 있는가?
편집 : 필터 자체를 통해 페이지로 리디렉션 할 수 있다는 것을 알았지 만 이는 나에게 약간의 해커처럼 보입니다. 속성을 통해 예외를 던져서 잡을 수 있고 처리 할 수있는 표준 장소를 하나 마련하는 것이 좋습니다.
* "특성에서 예외를 찾아내는 데는 유용한 곳이 없습니다."* @ GalacticCowboy의 답변에 어떤 문제가 있습니까? – seebiscuit