Click here to Skip to main content
15,889,116 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
he system should monitor user activity and it should start the countdown only if it sees that the user is not doing anything say for 3 mins or 5 mins
And when the countdown is running lets say for 1 hour and user clicks inside the page and does some action, then the countdown should reset to 2 hour and it should not start the countdown until it again detects user inaction for 3 or 5 mins
If there is user inaction for 3 or 5 mins and the countdown starts and runs till 1:58 mins and still there is no user action, then the popup with 2 min countdown should appear with "Extend Session" button
With “Extend Session” button click the counter should be reset to 2 hours and again it should not start the countdown until it detects user inaction for 3 or 5 mins

What I have tried:




Session Idle:  seconds.



Your Session will expire in  seconds.

Do you want to reset?




$(function () {
$("#dialog").dialog({
autoOpen: false,
modal: true,
title: "Session Expiring",
buttons: {
Ok: function () {
ResetSession();
},
Close: function () {
$(this).dialog('close');
}
}
});
});
function SessionExpireAlert(timeout) {
var seconds = timeout / 1000;
$("#secondsIdle").html(seconds);
$("#seconds").html(seconds);
setInterval(function () {
seconds--;
$("#secondsIdle").html(seconds);
$("#seconds").html(seconds);
}, 1000);
setTimeout(function () {
//Show Popup before 20 seconds of timeout.
$('#dialog').dialog('open');
}, timeout - 30 * 1000);
setTimeout(function () {
window.location = "User/SessionExpired";
}, timeout);
};
function ResetSession() {
//Redirect to refresh Session.
window.location = window.location.href;
};



---------------------------------------------------------------------------------
CS Page-

Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (!this.IsPostBack)
{
Session["Reset"] = true;
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/Web.Config");
SessionStateSection section = (SessionStateSection)config.GetSection("system.web/sessionState");
int timeout = (int)section.Timeout.TotalMinutes * 1000 * 60;
ClientScript.RegisterStartupScript(this.GetType(), "SessionAlert", "SessionExpireAlert(" + timeout + ");", true);
}
Posted
Updated 4-May-21 23:37pm

1 solution

You already posted this question at How to show session timeout warning message in ASP.NET MVC[^]; please do not repost. If you have additional information to add then use the Improve question link below your question, and add the details to the original post.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900