2012-09-23 4 views
0

MVC2 응용 프로그램 세션 시간 초과 경고에 대한 도움이 필요합니다. 사용자가 세션 시간 초과의 "n"분 내에있을 때 팝업이 발생해야합니다. 정보를 알 수있는 방법이 있거나 계산해야합니다. 나는 표준 get/post 작업뿐만 아니라 AJAX 요청을 가지고있다. 미리 감사드립니다.ASP.NET MVC2 세션 시간 초과 경고 구현

답변

1

하는 ASP.NET sessione이 n분 서버에 마지막 요청 이후에 만료, 그래서, n이 무엇인지 아는 페이지에 렌더링 때 적절한 메시지를 표시하는 간단한 자바 스크립트 타이머를 사용하여 단지 문제, 같은 :

<sctipt type="text/ecmascript"> 
var timeoutMins = <%= Session.Timeout %>; // HttpSessionstate.Timeout is the timeout period in minutes 
setTimeout(informUser, 0.75 * (timeoutMins * 60 * 1000)); 
function informUser() { 
    alert("Your session is expiring shortly"); 
} 
</script> 

0.75 * (timeoutMins * 60 * 1000) 부분은 밀리 초 시간 종료 길이 값을 변환하고 반응 할 수있는 사용자의 시간을주고 그것을 아래로 조절합니다. 서버에 AJAX 요청을하여 세션을 자동으로 확장 할 수 있습니다 (중요한 ASP.NET 세션 쿠키가 있음).

고정 된 경고 기간을 사용하거나 "남은 시간"수치를 계산하려면이 코드를 수정하는 것이 독자에게 남은 과제입니다.

+0

이것은 좋은 시작입니다. 일부 응용 프로그램에서는 적절할 수 있지만 슬라이딩 만료 (http://msdn.microsoft.com/en-us/library/system.web)는 지원하지 않습니다. configuration.formsauthenticationconfiguration.slidingexpiration.aspx), AJAX 요청을 통한 세션 업데이트 또는 여러 탭/창이 열려있는 상황. –