2012-03-12 3 views
1

활동이 없을 때 홈 페이지로 다시 리디렉션하고 싶습니다. 그러나 사용자 로그인이나 필요가 없습니다. 그러나, 나는 활동이 없을 때 홈 페이지로 다시 방향을 바꿀 수 있기를 원합니다.비활성 후 세션 시간 초과 설정

나는 내가 홈페이지

Session["UserId"] = 1; 

이 설정 한 후 web.conf

<system.web> 
<sessionState mode="InProc" timeout="2"> 

이 설정 또한이 시도하지만 함수 나던 화재가.

protected void Page_Init(object sender, EventArgs e) 
    { 
     CheckSession(); 
    } 


    private void CheckSession() 
    { 
     if (Session["UserId"] == null) 
     { 
      Response.Redirect("KioskHome.aspx"); 
     } 
    } 

global.asax 파일을 사용할 수 있습니까?

void Session_Start(object sender, EventArgs e) 
    { 
     // Code that runs when a new session is started 

    } 

    void Session_End(object sender, EventArgs e) 
    { 


    } 

간단한 해결책은 무엇입니까? 감사합니다.

+2

귀하의 질문에 대답해야합니다. http://stackoverflow.com/a/6210463/590177 –

+0

그게 내 게시물이 아니며 그 해결책이 나에게 도움이되지 않습니다. 그렇다면 내 게시물을 왜 닫아야합니까? –

+0

세션 시간 초과를 확인한 다음 리디렉션하려면 제공된 코드가 도움이 될 것입니다. 두 가지 질문은 모두 시간 초과 리디렉션과 관련되어 있으므로 가까운 투표를 제공했습니다. 솔루션이 왜 도움이되지 않는지 설명해보십시오. –

답변

1

질문을 이해하면 일정 기간 동안 사용자가 어떤 작업도 수행하지 않은 경우 사용자 브라우저를 리디렉션하고 싶습니다.

이 경우 서버 측 동작이 도움이되지 않습니다. 연결이 이미 닫혔습니다. 세션이 끝나면 global.asax Session_end가 실행되고 그 시점에 클라이언트가 연결되지 않습니다. 아마도 ASP.NET Page Lifecycle에 대해 더 자세히 읽어야합니다.

그러나 원하는 것은 특정 시간 초과 후에 사용자를 리디렉션 할 수있는 자바 스크립트와 같은 클라이언트 측 동작의 일부 양식입니다. 사용자가 여러 개의 탭을 사용할 수 있다는 점을 포함하여 여러 가지 문제가 있으므로 세션이 시간 초과되었을 때 정확하게 알면 어려울 수 있습니다.