알림을 받는 방법의 세션이 끝?
문제
나는지 궁금하다면 나는 처리할 수 있습 세션 시간 제한 이벤트입니다.를 확인해야 함수 호출 내수하기 전에 세션 제한 시간 또는 사용자가 마이 페이지,또는 폐쇄 브라우저 창을 닫습니다.가장 중요한 부분은 여기에 액세스하는 모든 것을 저장하는 동안 세션,세션 변수입니다.
해결책
을 살펴 session_end 등()메소드에서 글로벌입니다.맨.Global.맨 파일을 이미 유선을 이 메소드를 호출할 때 세션이 끝납니다.당신은 코드가 있지만 당신이 좋아하는 것입니다.
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session ends
End Sub
물론 당신은 참고해야의 세션은 전적으로 서버측 것입니다.그것은 단지 말 X 분 후의 비활동(20 분 기본값).그것은 끝나지 않는 즉시 사용자가 창을 닫습니다.ASP.NET 가 없는 지식의 사용자가 창 닫기거나 당신의 페이지입니다.
사실,그것은 까다로운 시도를 수행하 즉각적인 행동을 서버의 측면이 발생합니다.I mean,그것은 쉽게 전화하는 창입니다.onbeforeunload 에서 자바스크립트 및 가 확인 상자하기 전에 사용자가 창을 닫습니다.그러나 하려고 하면 패킷을 전송하면 서버에서 즉시기 전에 창이 실제로 닫히 찾을 수있을 거라 생각되는 것을 어렵게 작업들에게 이 모든 사용자 친화적이다.당신이 쓸 수 있는 몇 가지 자바 스크립트는 메시지를 보내 서버를 사용하여 AJAX 를 통지하는 서버는 사용자가 닫을 자신의 브라우저를 사용하여 다음을 더 자바 스크립트를 다음 브라우저를 닫는 메시지가 전송되었습니다.그러나 사용자에게 짜증나는 메시지(대부분의 브라우저에서)는 스크립트를 하려고 창을 닫습니다.이 매우 아마추어 흉내 사용자 및 그들을 만들 수 있습니다에 대해 두 번 생각하고 돌아옵니다.
그래서 만약 당신이 하고자 하는 지연,난을 피하기 이 전체적인 Javascript 엉망 전체에 의존하고 순수한 서버 사이드 솔루션을 사용하여 session_end 등().모든 후,사용자가 창을 닫거나,잎 ASP.NET 이 결국 알 수 있기 때문에 세션 시간이 초과됩니다.
다른 팁
Session_end 등을 처리하는 세션 시간 문제입니다.그러나,이하지 않는 경우 사용자는 브라우저를 닫거나 움직이 다른 URL.그 때까지 기다립니다 세션 제한 시간이 만료됩니다.
을 검출하기 위해 다른 조건은,당신은 당신을 사용해야에서 자바스크립트는 클라이언트.그러나,이러한 방법이 항상 신뢰할 수 있는 브라우저에 따라/버전,etc.또한 경우에는 사용자의 컴퓨터를 종료하고 아래로,분리,또는 그들이 그렇지 않으면 완전히 이동 거리는 이 스크립트입니다.
고려할 수 있습니다 다른 대안을 찾기 시작했습니다.정확히 무엇을 달성하고자 하는 이 기능이?
웹은 무 그래서 당신이 있는지 여부 사용자가 닫히는 브라우저 창에 있습니다.사용할 수 있는'session_end 등'행사에서는 글로벌입니다.맨 파일에 대한 세션 제한 시간.에 액세스하려면 모든 세션을,저장할 수 있습니다 그들은 컬렉션을 통해'Session_Start'이벤트를,또한 전체 파일..
편집:하려면을 차단하기 위해 가까운 이벤트의 페이지를 자바스크립트를 사용하여 여기에는 방법(참고로,이는 신뢰할):
window.onbeforeunload = closeIt;
function closeIt(){
return "You have unsaved changes. Are you sure you want to leave this page?";
}
할 수 있습 basepage 는 상속에 의해 모든 페이지에서 당신의 기본 페이지 초기화 이벤트 확인을 위한 세션 변수에 대한 아무것도 아니다.면 그것은 아무것도 그것을 의미청 및 리디렉션할 수 있습니다 사용자를 로그인 페이지입니다.