none
¿Como Redirijir una Pagina al Login cuando la session Caduque? RRS feed

  • Pregunta

  • Mi Pagina ya esta Publicada en el server.

    E Intentado  Poniendo esto en mi Web.confg

    <

     

    sessionState mode="InProc" cookieless="false" timeout="1"/>

    y en mi global.asax pongo esto:

     

    <%

    @ Application Language="C#" %>

    <

     

    script runat="server">

     

    void Application_Start(object sender, EventArgs e)

    {

     

    // Cdigo que se ejecuta al iniciarse la aplicacin

    }

     

     

    void Application_End(object sender, EventArgs e)

    {

     

    // Cdigo que se ejecuta cuando se cierra la aplicacin

    }

     

     

    void Application_Error(object sender, EventArgs e)

    {

     

    // Cdigo que se ejecuta al producirse un error no controlado

    }

     

    void Session_Start(object sender, EventArgs e)

    {

     

    // Cdigo que se ejecuta cuando se inicia una nueva sesin

     

    HttpContext context = HttpContext.Current;

     

    HttpCookieCollection cookies = context.Request.Cookies;

     

    if (cookies["starttime"] == null)

    {

     

    HttpCookie cookie = new HttpCookie("StartTime", DateTime.Now.ToString());

    cookie.Path =

    "/";

    context.Response.Cookies.Add(cookie);

    }

     

    else

    {

    context.Response.Redirect(

    "~/Default.aspx");

    }

    }

     

    void Session_End(object sender, EventArgs e)

    {

     

    // Cdigo que se ejecuta cuando finaliza una sesin.

     

    // Nota: El evento Session_End se desencadena slo con el modo sessionstate

     

    // se establece como InProc en el archivo Web.config. Si el modo de sesin se establece como StateServer

     

    // o SQLServer, el evento no se genera.

    Session.Abandon();

    Session.RemoveAll();

    Session.Clear();

     

    }

     

    </

     

    script>

     

     

     

    Que estoy Haciendo Mal?

    Espero Me puedan Colaborar.

    pero pasado el minuto no me redirige alguna Sugerencia?

     

    • Editado jhohan25 martes, 22 de febrero de 2011 22:05
    lunes, 21 de febrero de 2011 14:01

Respuestas

  • hola

    porque no has implementado la autenticacion que provee asp.net ? esto que necesitas lo hace solo

    Login – Usando Password con Hash

    veras que con solo configurar

    <authentication mode="Forms">
        <forms name="appNameAuth" path="/" loginUrl="frmLogin.aspx" defaultUrl="Default.aspx" protection="All" />
    </authentication>
     
      <authorization>
        <deny users="?" />
      </authorization>

     

    asp.net detecta si esta autenticado o no y redirige al login, sin que tengas que hacer nada mas, lo hace solo

    porque no analzias alguna tecncia como esta es muy practica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta jhohan25 jueves, 7 de abril de 2011 18:23
    lunes, 21 de febrero de 2011 14:11

Todas las respuestas

  • hola

    porque no has implementado la autenticacion que provee asp.net ? esto que necesitas lo hace solo

    Login – Usando Password con Hash

    veras que con solo configurar

    <authentication mode="Forms">
        <forms name="appNameAuth" path="/" loginUrl="frmLogin.aspx" defaultUrl="Default.aspx" protection="All" />
    </authentication>
     
      <authorization>
        <deny users="?" />
      </authorization>

     

    asp.net detecta si esta autenticado o no y redirige al login, sin que tengas que hacer nada mas, lo hace solo

    porque no analzias alguna tecncia como esta es muy practica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta jhohan25 jueves, 7 de abril de 2011 18:23
    lunes, 21 de febrero de 2011 14:11
  • Hola,

    También, ademas de lo q comenta Leandro que es muy práctio. Podrías utilizar un poco mas de código (todo depende de como quieras manejarlo). Podrías provar algo asi

     public class basePageSessionExpire : System.Web.UI.Page
     {
        public basePageSessionExpire()
        {
        }


      override protected void OnInit(EventArgs e)
      {
           base.OnInit(e);


      
       if (Context.Session != null)
       {
     
        if (Session.IsNewSession)
        {
      
         string szCookieHeader = Request.Headers["Cookie"];
         if ((null != szCookieHeader) && (szCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
         {
          Response.Redirect("sessionTimeout.htm");
         } 
        }
       }
      }
    }

     

    Saludos,



    Jason Ulloa
    Mi Blog
    lunes, 21 de febrero de 2011 14:15
  • hola

    porque no has implementado la autenticacion que provee asp.net ? esto que necesitas lo hace solo

    Login – Usando Password con Hash

    veras que con solo configurar

    <authentication mode="Forms">
        <forms name="appNameAuth" path="/" loginUrl="frmLogin.aspx" defaultUrl="Default.aspx" protection="All" />
    </authentication>
     
      <authorization>
        <deny users="?" />
      </authorization>

     

    asp.net detecta si esta autenticado o no y redirige al login, sin que tengas que hacer nada mas, lo hace solo

    porque no analzias alguna tecncia como esta es muy practica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    De Antemano Leandro mil gracias por responderme...

    Este Codigo me sacara al usuario al la Default.aspx  cuando la session caduque?

    • Editado jhohan25 martes, 22 de febrero de 2011 18:13
    martes, 22 de febrero de 2011 16:49
  • Hola,

    También, ademas de lo q comenta Leandro que es muy práctio. Podrías utilizar un poco mas de código (todo depende de como quieras manejarlo). Podrías provar algo asi

     public class basePageSessionExpire : System.Web.UI.Page
     {
        public basePageSessionExpire()
        {
        }


      override protected void OnInit(EventArgs e)
      {
           base.OnInit(e);


      
       if (Context.Session != null)
       {
     
        if (Session.IsNewSession)
        {
      
         string szCookieHeader = Request.Headers["Cookie"];
         if ((null != szCookieHeader) && (szCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
         {
          Response.Redirect("sessionTimeout.htm");
         } 
        }
       }
      }
    }

     

    Saludos,



    Jason Ulloa
    Mi Blog


    De antemano mil Gracias por responder jason.

    esto me imagino que se pone en una clase y luego que donde lo utilizo?

    martes, 22 de febrero de 2011 16:50
  • hola

    si lo quieres implementar con un formaulario y validar contra una db en dodne registres los usuario debe ser Forms

    Cómo implementar la autenticación basada en formularios en su aplicación ASP.NET mediante C# .NET

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 22 de febrero de 2011 17:05
  • hola

    si implementas la autenticacion provista por asp.net, como explique en los links, no tienes que hacer nada, asp.net lo hace por ti, este detecta que la autenticacion expiro el solito y redirige a la pagina de login condigurada en el web.config

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 22 de febrero de 2011 23:06