MVC에서어떤 순서로 필터는 asp.net mvc에서 실행됩니다
[HttpPost]
[Authorize]
public ActionResult mymethod(){}
HttpPost
는 MethodSelectorAttribute
(아마도 간접적으로)에서 파생되며 Authorize
특성은 ActionFilterAttribute
에서 상속합니다.
제 질문은 : 그들은 MVC 요청 파이프 라인에서 어떤 순서로 실행됩니까? MVC 소스 코드에서 검색을 시도했지만 관련 코드 비트를 찾지 못했습니다.
소스에서 실제 순서에 의해 영향을받을 수있는 리플렉션 중에 반환되는 순서를 가정합니다. –
@Hasan bhai 먼저 HttpPost가 actionMethodSelector (해당 메서드 isValidForRequest가 호출 됨) 특성이고 Authorize가 actionFilter 특성 (onActionExecuting 또는 onActionExecuted가 호출 됨)이 서로 다른 시간에 호출되어야한다고 생각합니다. 아마도 HttpPost는 다른 필터이고 다른 책임이 있기 때문에 Authorize 전에 호출되어야합니다. –
내 가정이 틀린 것처럼 보입니다. Eranga의 답변에 따르면 필터에는 순서를 지정하는 메커니즘이 있습니다. 그러나 HttpPost는 필터가 아니기 때문에 나타납니다. 그것은 다른 어떤 것보다 먼저 실행함으로써 특별한 처리를 할 수 있습니다. 다시 한번 가정합니다. –