2009-04-21 2 views
1

타이머 이벤트를 기반으로 UpdatePanels 내용을 자동으로 새로 고치는 ASP.net Ajax 응용 프로그램에는 여러 페이지가 있지만 문제는 우리가 웹 세션 시간 초과를 요구하고 자동 새로 고침이이를 방지한다는 것입니다.UpdatePanel의 내용이 Timer 이벤트에 의해 새로 고쳐질 때 Session timeout을 재설정하지 못하게하려면 어떻게해야합니까?

UpdatePanel 내용을 자동 새로 고치는 동안 웹 세션이 시간 초과되도록 웹 세션이나 다른 대체 솔루션을 수정하는 타이머 다시 게시 이벤트를 방지하는 방법이 있습니까?

다음은이 문제를 설명하기위한 예입니다. 세션 타임 아웃을 3 분으로 설정하고 매분마다 틱하고 현재 상태를 기반으로 UpdatePanel의 내용을 수정하는 UpdatePanel의 타이머가 있습니다. 로그인 한 후이 페이지로 이동하여 5 분간 아무 작업도 수행하지 않은 다음 다른 페이지를 클릭하고 시도하면 세션이 시간 초과되지 않았으므로 계속 로그인됩니다.

답변

2

클라이언트 측에서 사용자의 활동을 추적 할 수 있습니다. 마우스 이동 등이 없다면 Sys.Services.AuthenticationService 클래스 (Microsoft AJAX Library 1.0의 일부)를 사용하여 사용자를 로그 아웃 할 수 있습니다. 실제 로그 아웃하기 전에 확인 메시지가 나타나서 사용자가 부재 중일 경우 취소 할 수 있습니다. 로그 아웃 할 때 사용자가 비활성 상태로 자동으로 로그 아웃되었다는 메시지를 사용자에게 보낼 수 있습니다. 내 솔루션이 시나리오 해결할 방법

:

당신은 삼분의 세션 시간 제한을 설정하고 분마다 틱 현재 상태에 따라 UpdatePanel의 내용을 수정합니다 UpdatePanel에 타이머를 가지고있다. 로그인 한 후에이 페이지로 이동하여 아무 것도하지 않습니다. 활동이 3 분이 경과하면 사용자에게 Sys.Services.AuthenticationService을 사용하여 자동 로그 아웃을 취소 할 것인지 묻는 확인 메시지가 나타납니다. 사용자가 아직 조치를 취하지 않으면 몇 초 후에 로그 아웃됩니다. 사용자가 5 분 후에 브라우저로 돌아올 때 사용자에게 표시되는 "로그 아웃 된 메시지"가 나타납니다. 그는 그가 로그인하지 않은 다른 페이지를 클릭 할 때.

+0

좋아, 네가 말하는 것을 이해하지만 나는 더 간단한 해결책을 원했다. 바꾸어 말하면, 세션은 Timer 이벤트 포스트 백으로 인해 시간 초과되지 않기 때문에 사용자가 세션 시간 초과가 아닌 다른 것에 의존 한 시간을 추적하는 것이 좋습니다. Timer refresh 이벤트를 피기 백 할 수도 있습니다. 저의 유일한 관심사는 세션 시간 초과를 수동으로 처리해야한다는 것입니다. – Brian

+0

Sys.Services.AuthenticationService는 Microsoft AJAX Library 1.0의 일부입니다. 그것은 JavaScript 라이브러리입니다. 그래서 내가 말하고있는 것은 클라이언트 측에서 사용자 활동을 추적한다는 것입니다. 마우스 이동 등 ... Sys.Services.AuthenticationService 객체의 로그 아웃 함수에 대한 JavaScript 호출로 사용자를 로그 아웃합니다. – knut

+0

제 경우에는 Sys.Services.AuthenticationService를 사용하는 대신 세션을 무효화해야합니다. 로그인 메커니즘은 사용자 정의이며 세션을 기반으로하기 때문입니다. 내가 선호하는 자바 스크립트를 포함하지 않는 솔루션을 가지고 있지만 그것을 테스트해야한다고 생각합니다. 귀하의 답변과 의견을 보내 주셔서 감사 드리며, 제 제안 된 해결책을 이끌어내는 새로운 방식으로이 문제에 대해 생각하게되었습니다. – Brian

관련 문제