Informar al usuario de que su sesión se va a caducar

4393 vistas

A veces, puede ser interesante advertir al usuario de que su sesión va a caducar.

Veamos un ejemplo completo donde se advertirá al usuario del tiempo que le queda:



html4strict
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>Untitled Page</title>
  6.     <script type="text/javascript">
  7.     function tiempo_deco()
  8.     {
  9.         value = document.getElementById('timeOut').innerHTML;
  10.         value = value-1;
  11.         document.getElementById('timeOut').innerHTML = value;
  12.         if (value == 120)
  13.             document.getElementById('expired').style.display = 'block';
  14.         else
  15.             setTimeout("tiempo_deco()", 1000);
  16.         }
  17.     </script>
  18. </head>
  19.     <form id="form1" runat="server">
  20.     <div align="center">
  21.         Su sesión caducará en <asp:Label runat="server" ID="timeOut" /> segundos.
  22.        
  23.         Le aconsejamos guardar la información...
  24.        
  25.         Asà podrá guardar y continuar con su sesión.
  26.     </div>
  27.     <div id="expired" style="display: none;">
  28.         Atención: la sesión caducará en menos de 2 minutos
  29.     </div>
  30.         </form>
  31.         <script type="text/javascript">
  32.             tiempo_deco();
  33.         </script>
  34. </body>
  35. </html>



y en el Page_Load:



csharp
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.   timeOut.Text = (Session.Timeout*60).ToString();
  4. }