1

30 분 동안 사용하지 않으면 세션이 만료되면 사용자에게 팝업을 표시해야합니다. 사용자가 지난 30 분간 응용 프로그램을 사용하지 않는 경우 세션이 만료되었다는 메시지를 표시합니다.사용자에게 세션 만료 메시지를 표시하는 방법

우리 응용 프로그램에서 MVC C#과 AngularJs를 사용하고 있으며 폼 인증 쿠키를 사용하고 있습니다. 세션이 서버 측에 있고 클라이언트 측에서이를 확인해야합니다. 세션을 검사하기 위해 Ajax 히트를 수행하면 세션이 재생성되고 만료되지 않습니다.

어떻게하면됩니까?

+0

요청을하면 viewdata에 시간 초과 값을 저장하고 문서의 클라이언트 쪽에서는 현재 시간과 세션 시간 초과를 비교하는 시간 초과를 트리거 할 수 있습니다. –

답변

1

페이지에 라벨이 있어야합니다.이 라벨을 세션의 분 수 (예 : 30:00 분)로 설정하십시오.

지금 당신은 타이머마다 초를 감소 함수를 만드는 것입니다, 당신은 출력 타이머 이제 Code for a simple JavaScript countdown timer?

, 당신은 타이머를 서버에 요청이있을 때마다 재설정해야 할 수있는 방법을 보려면이 링크를 따라 페이지가로드 될 때 자바 스크립트 코드는 타이머가 자동으로 재설정되는 레이블을 시작하지만 Ajax 요청이있을 때 발생하지는 않습니다. 당신이 카운터를 재설정 JQuery와에 의해 그 안에 다있는 Ajax 호출을 차단합니다 다음과 같은 코드를 작성해야한다는하려면,이 코드는 레이아웃에로드 된 레이아웃이나 자바 스크립트 파일 내부에 있어야한다

$(document).ajaxSend(function() { 
    //Reset the counter here 
}); 
+0

감사합니다. 나는 카운터를 재설정 할 수있는 "ajaxSend"와 같은 것을 찾고 있습니다. – Tarlok

2

1) JS

데모보고 그 JQuery와 &의 비트를 사용)

var myApp = angular.module('myApp', ['ngIdle']); //inject ng-Idle in your app 

myApp.config(['KeepaliveProvider', 'IdleProvider', function(KeepaliveProvider, IdleProvider) { 
    IdleProvider.idle(30); 
    IdleProvider.timeout(30); 
    KeepaliveProvider.interval(10);//check every 10 mins.. 
}]); 

이 파일 JS 다운로드하려면 여기를 linkng-Idle입니다 사용 을 달성하는 방법은 두 가지가 있습니다

나는이 작은 템플릿이 당신에게 접근법 2 인 원하는 결과를 줄 것이라고 생각한다.

var idleTime = 0; 
$(document).ready(function() { 
    //Increment the idle time counter every minute. 
    var idleInterval = setInterval(timerIncrement, 60000); // 1 minute 

    //Zero the idle timer on mouse movement means some activity is going on . 
    $(this).mousemove(function (e) { 
     idleTime = 0; 
    }); 
    $(this).keypress(function (e) { 
     idleTime = 0; 
    }); 
}); 

function timerIncrement() { 
    idleTime = idleTime + 1; 
    if (idleTime > 30) { // 30 minutes 
     //call your custom pop up to show user that he is inactive for 30 mins 
     window.location.reload(); 
    } 
} 

이러한 접근 방식을 통해 결과를 달성하는 방법을 이해할 수 있기를 바랍니다.

+0

사용자가 마우스를 움직이거나 키를 누를 때 세션이 갱신되지 않습니다. –

+0

@HaithamShaddad 질문은 세션 갱신에 관한 것이 아니며, 해당 사용자를 표시 할 시간을 결정하는 방법에 대한 것입니다. 서비스 호출을 할 수 있으며 지정된 시간이 지나면 사용자 세션을 무효화하고 로그 아웃 페이지를 표시합니다. timerIncrement() –