2010-04-03 6 views
1

현재 세션이 끝나고 해당 구성이 에서 작동해야하는 경우 리디렉션을 수행하고 싶습니다.컨트롤러을 봅니다. Global.asax에페이지 ASP.Net MVC에서 세션 종료시 리디렉션

내 현재 코드 :

protected void Session_End(object sender, EventArgs e) 
{    
    Session.Abandon(); 
    //GetPath() is getting currently path 
    // eg. http://localhost/mymvcproject 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 

답변

0

Session_End() 더 일반적으로 특정 후 브라우저에 의해 어떠한 요청이 없을 때 호출되는 때문에 나는 당신의 코드가 작동 할 수 있다고 생각하지 않습니다 지속. 따라서 여기서 Response은 특정 요청이 없으므로 리디렉션이 필요하지 않습니다.

대신 Application_Start을 처리하고 Session.IsNew 속성을 확인하십시오. true 인 경우 리디렉션을 수행합니다. 그래도 FormsAuthentication.RedirectToLoginPage()을 호출하면됩니다.

IsNew을 확인할 때 here의 상황을주의하십시오. 나는 자신을 시도하지는 못했지만, 로그인 프로세스 중에 더미 세션 변수를 할당하는 것이 그 문제를 해결할 것이라고 생각합니다.

2

확인하여 web.config 파일에서 <system.web>에서 다음 설정 :

<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState> 

은 다음 site.Master에 다음 텍스트를 입력

if (Session.IsNewSession) 
{ 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 
관련 문제