내가 .NET MVC, 기본적으로 요구 사항을 가진 컨트롤러/액션을 시도 무단 액세스를 기록하는 가장 좋은 방법을 확립하기 위해 노력하고있어이 :로그/감사 (403 개) 요청
- 그들은 로그인하지 않은 경우
- 로그인했지만 페이지에 적합한 자격 증명이없는 경우 요청에 대한 정보, 그 사람의 신원, 일부 HttpRequest 항목 등을 기록한 다음 리디렉션하고 싶습니다 특정 무단 액세스 페이지로 이동합니다.
1은 분명히 .net mvc [Authorize] 속성 필터로 처리됩니다. 2 부분적으로 구현했습니다. 기본 HandleUnauthorizedRequest 메서드를 재정 의하여 권한 부여 액션 필터를 확장하여 특정 추가 작업을 확인하고 응답 코드 403을 사용하여 HttpResult를 반환하는 특정 Authorization 특성을 만들었습니다.
저는 다른 부분을 구현하는 데 문제가 있습니다. 데이터베이스에 정보를 로깅합니다. 물론 커스텀 애트리뷰트 자체에서 로깅하는 간단한 해결책이 있습니다.하지만 그건 옳은 생각이 아닙니다. 애트리뷰트 자체를 더 똑똑하게 만드는 것처럼 느껴질 것입니다. 정보를 데이터베이스에 로깅하는 것이 아니라 액세스를 제한하는 방법에 대해 설명합니다.
또 다른 해결책으로는 권한이 부여되지 않은 페이지 자체에 도착할 때 로깅하는 것이 있습니다. 그 자체는 나쁘지는 않지만 여전히 옳은 느낌은 아닙니다.
개인적으로 요청 체인 내 어딘가에서 처리 할 수 있기를 원하지만 가능한 모든 정보에 액세스 할 수있는 곳이 없다는 것을 알 수 있습니다. 나는 여기를 둘러 보았지만 우리가 가고있는 해결책에 맞는 것을 발견하지 못했습니다.
아무에게도 우리가 할 일과 비슷한 것을 구현했거나 구현해야 할 부분에 대한 아이디어가 없습니다.
그건 우리가 찾고 있던 것과 똑같습니다. – MDo