viernes, 25 de noviembre de 2011

No Expirar session en ASP .NET

En este post explicare la unica forma de solucionar el problema de expiración de sessiones en ASP .net


Al principio fue un dolor de cabeza para mi , por que ? todo funciona perfecto el tema de autentificación en mi server local pero a la hora de publicarlo que pasa?
no funciona en todo los servidores de nuestros proveedores ya que cada servidor tiene una distinta forma de seguridad. Bueno esto me paso y lo solucione con los siguientes pasos.

1.-Insertar lo siguiente dentro del head
-Esta función hara que cada 1 min haga una llamada atravez de ajax para mantener la sessión de la pagina
<script type="text/javascript">
     window.onload = function () {
         var numero = 0
         var CONTROLADOR = "Mant_session.ashx";
         time = setInterval(function () {
             numero++;
             document.getElementById("timer").innerHTML = numero;
         }, 1000);

         time2 = setInterval(function () {
             var head = document.getElementsByTagName("head").item(0);
             script = document.createElement("script");
             script.src = CONTROLADOR;
             script.setAttribute("type", "text/javascript");
             script.defer = true;
             head.appendChild(script);

         },60000 );
     }

</script>


2.- Insertar dentro de "body"

<span id="timer">0</span>

3.- Ahora lo mas importante es crear el archivo "Man_session.ashx" e insertar lo siguiente:


<%@ WebHandler Language="VB" Class="Mant_session" %>

Imports System
Imports System.Web

Public Class Mant_session : Implements IHttpHandler, IRequiresSessionState
    
    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Response.Cache.SetNoStore()
        context.Response.ContentType = "application/x-javascript"
        context.Response.Write("//")
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class

Regresar Principal