반응형
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와 동일한 데이터를 가리 킵니다.
반응형
'Programing' 카테고리의 다른 글
Jasmine 단위 테스트에서 AngularJS 모듈 종속성 모의 (0) | 2020.10.30 |
---|---|
Python Pandas : 그룹 별 및 평균? (0) | 2020.10.30 |
파이썬 에그 캐시 (PYTHON_EGG_CACHE) 란 무엇입니까? (0) | 2020.10.30 |
UnicodeEncodeError : 'ascii'코덱은 위치 3의 u '\ u2013'문자를 인코딩 할 수 없습니다. 2 : 서 수가 범위에 없습니다 (128). (0) | 2020.10.30 |
shared_ptr을 언제 사용하고 언제 원시 포인터를 사용합니까? (0) | 2020.10.30 |