2010-03-10 3 views
0

내 웹 응용 프로그램 (asp.net mvc rc2)에서 세션에 문제가 있습니다. 응용 프로그램이 잘 asp.net mvc rc1에서 작동합니다.ASP.NET MVC RC2 - 세션 처리 버그?

난 세션 타임 아웃 처리를 위해 후속 코드를 사용

난 세션 타임 아웃된다
if (cnt.Current.Session != null) 
     { 
      if (cnt.Current.Session.IsNewSession) 
      { 
        string cookie = cnt.Current.Request.Headers["Cookie"]; 
        if ((null != cookie && (cookie.IndexOf("ASP.NET_SessionId") >= 0)) 
        { 
         return true; 
        } 
      }  
     } 

상기 loginpage로 리디렉션 로그 아웃 사용자의 FormsAuthentication.SignOut(); 방법을 사용한다. 새 로그인 후 은 항상 cnt.Current.Session.IsNewSession입니다. (버그?) rc1에 잘 작동합니다.

+0

Cassini 또는 IIS에서 테스트 중이십니까? 그것은 cassini에서 작동하지 않지만 IIS에서 작동합니다. – chugh97

답변

4

MVC 2 RC1에는 모든 사용자에 대해 새로운 세션을 잘못 만든 버그가있었습니다. 올바른 동작 (MVC 2 RC2에서 보여지는)은 사용자 세션에 무언가가 처음 저장 될 때까지 세션 생성이 지연된다는 것입니다.

Session에 아무 것도 저장하지 않으면 절대로 저장되지 않으며 IsNewSession은 항상 true를 반환합니다. 세션을 사용하고자한다면 실제로 Session에 넣고 있는지 확인하십시오.

관련 메모에서, 사용자가 로그 아웃 할 때이를 제어하는 ​​데만 사용하는 경우 FormsAuth 쿠키 만료를 단축하지 않는 이유는 무엇입니까? 기본 제한 시간은 2880 분 (2 일)입니다. 사이트의 루트 Web.config에서이를 변경할 수 있습니다. 이렇게하면 세션을 전혀 망칠 필요가 없습니다.