Request
, Response
속성을 System.Web.Mvc.Controller
클래스로 사용하여 HTTP 요청 및 응답에서 쿠키를 설정하고 읽으 려합니다. 그 이유는 요청에서 읽어 들이고 일부 도우미 클래스에서 데이터를 채우는 유틸리티 클래스를 작성할 필요가 없기 때문입니다. 모든 사용자 정의 기본 컨트롤러 (모든 컨트롤러가 파생 된)에서 이러한 코드를 모두 푸시 할 수 있습니다. ASP.NET MVC에서 Controller.Request를 채우는 방법
if (Request != null)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
HttpContext.User = new GenericPrincipal(new GenericIdentity(authCookie.Value), null);
Thread.CurrentPrincipal = HttpContext.User;
}
}
하지만 Request
는 항상 null입니다. 어떻게 채워 집니까?
저는 실제로'Initiaze' 메소드에 제 코드를 넣었습니다. 나는 또한 MyAuthorizeAttribute를 가진다. 내 문제는 조롱하는 것입니다. 만약 내가 당신의 접근 방식으로 가면'HttpContextBase'를 조롱하고 의존성으로 주입해야합니다 (Moq와 StructureMap을 사용하고 있습니다). 나는 그것이 특히 어려운 것을 안다. 'Controller.HttpContext' 또는'Controller.Request'를 사용하면 컨트롤러에서이 속성들을 쉽게 조롱 할 수 있습니다. – Suhas
@ Suhas,'HttpContextBase'는'AuthorizeCore' 메소드의 인자로 전달됩니다. 단위 테스트에서해야 할 일은 그것을 조롱하고 통과시키는 것입니다. –