2011-03-30 3 views
6

SessionStateAttribute를 MVC3의 글로벌 필터로 어떻게 설정합니까? 내 Global.asax에서 RegisterGlobalFilters 메소드에이 항목이 있습니다.MVC SessionStateAttribute가 글로벌 속성으로 작동하지 않습니다.

filters.Add(new SessionStateAttribute(SessionStateBehavior.Disabled)); 

그리고 가정용 컨트롤러에이 기능이 있습니다.

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     ViewBag.Message = "Welcome to ASP.NET MVC!"; 

     Session["Blend"] = "Will it blend?"; 

     return View(); 
    } 

    public ActionResult About() 
    { 
     return View(); 
    } 
} 

하지만 여전히 세션을 사용할 수 있습니다. 그러나 특성과 함께 HomeController 클래스 자체를 장식하는 경우 세션을 사용하지 않는 경우 세션을 사용하는 줄에 개체 참조가 null 인 것으로 추측됩니다.

내 프로젝트에 문제가 있는지 궁금해지기 시작했습니다. 나는 표준 동작으로이 문제가 거의 발생하지 않았다. 이라고 가정하면이 작동한다.

누구든지 이와 같은 문제가 있습니까?

답변

11

SessionStateAttributeaction filter이 아니므로 글로벌 작업 필터로 추가 할 수 없습니다. 컨트롤러와 함께 꾸밀 수 있고 컨트롤러 당 세션 모드에 대해보다 정교하게 제어 할 수있는 특별한 특성입니다.

전체 응용 프로그램이 당신의 Web.config에 다음을 넣어 위해 전 세계적으로 세션을 해제하려면 :

<sessionState mode="Off" /> 
+5

와우,이 종류의 재미. SessionStateAttribute를 MVC에서 전역 필터를 사용하는 방법의 예제로 사용하는 사이트가 얼마나 많은지 놀라실 것입니다. 인터넷에 게시하기 전에 예제를 실제로 테스트하지 않았습니다. -P –

관련 문제