2012-05-18 7 views
0

배경 :일부 작업에 대해 HttpContext.Items이 누락되었습니다.

Windows 인증을 사용하는 MVC3 인트라넷 응용 프로그램. Windows 인증이 완료되면 HttpModule은 HR 데이터베이스에서 사용자의 네트워크 ID를 조회하고 사용자의 직원 정보를 반환하고 HttpContext.Items에 설정합니다. 이 정보를 찾고 OnActionExecuting을 재정 의하여 ViewBag 속성을 설정하는 기본 컨트롤러가 있습니다.

내 질문에이 정보는 Home/Index에서만 사용 가능하고 HomeController가 BaseController를 상속하지만 Home/About 또는 Home/Help를 클릭하면 사용할 수없는 것으로 나타났습니다. 왜 이런 일이 일어나고 있는지 밝힐 수 있습니까?

protected override void OnActionExecuting(ActionExecutingContext ctx) 
     {   
      if (this.HttpContext.Items["UserInfo"] != null) 
      { 
       UserInfo User = (UserInfo)this.HttpContext.Items["UserInfo"]; 
       ViewBag.CurrentUser = User; 
      }    

      base.OnActionExecuting(ctx); 
     } 

답변

1

HttpContext.Items은 요청 당입니다. 다른보기로 리디렉션하거나 현재보기 내에서 다시 게시 할 때 유지되지 않습니다. 그래서 그것을 유지하기 위해 Session 또는 뭔가 다른 것을 사용해야합니다.

관련 문제