Programing

MVC ASP.NET에서 HttpContext.Current와 Controller.Context의 차이점

lottogame 2020. 10. 30. 07:38
반응형

MVC ASP.NET에서 HttpContext.Current와 Controller.Context의 차이점


MVC ASP .NET 응용 프로그램에서 작업 중입니다. 나는 둘 다 상대적으로 처음입니다.

컨트롤러에서 현재 로그온 사용자를 얻으려고하는데 두 가지 방법이 있습니다.

System.Web.HttpContext.Current.User.Identity.Name

또는

HttpContext.User.Identity.Name

이들의 차이점은 무엇입니까? MVC 프레임 워크 내에서 컨트롤러에 현재 HttpContext가 속성으로 저장되어 있으므로 이러한 메서드가 동일하다는 것을 알 수 있습니다. 그 맞습니까?


예, 일반적으로 동일합니다. 그러나 추가 스레드로 작업하는 경우에는 그렇지 않습니다. System.Web.HttpContext.Current스레드 정적입니다.


컨트롤러에서 제공하는 컨텍스트 (정적 HttpContext.Current가 아님)는 mockable입니다. 코드 단위 테스트에 관심이있는 경우 일반적으로 HttpContext.Current를 통과하는 것보다 모의 ControllerContext를 만들고 컨트롤러에 설정하는 것이 훨씬 쉽습니다. 그렇지 않으면 ControllerContext.HttpContext가 HttpContext.Current와 동일한 데이터를 가리 킵니다.

참고 URL : https://stackoverflow.com/questions/785413/difference-between-httpcontext-current-and-controller-context-in-mvc-asp-net

반응형