none
verificar que una session exista RRS feed

Respuestas

  • coloca algo como esto

    C#

    if (!String.IsNullOrEmpty(Request.Cookies["ASP.NET_SessionId"].Value))
          {
            // Hay session. Ojo reemplaza ASP.NET_SessionId por el nombre de la session dentro del elemto SessionState del archivo de configuracion 
          }
    
          if (HttpContext.User.Identity.IsAuthenticated)
          {
            // esta autenticado
          }

    VB

    ' Hay session. Ojo reemplaza ASP.NET_SessionId por el nombre de la session dentro del elemto SessionState del archivo de configuracion 
    If Not [String].IsNullOrEmpty(Request.Cookies("ASP.NET_SessionId").Value) Then
    End If
    
    		' esta autenticado
    If HttpContext.User.Identity.IsAuthenticated Then
    End If
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    • Marcado como respuesta Eder Costa miércoles, 10 de octubre de 2012 12:25
    martes, 19 de abril de 2011 18:25
  • Buenas!

    No es necesario comprobar las cookies de sesión... basta con usar Session.IsNewSession (http://msdn.microsoft.com/es-es/library/system.web.sessionstate.httpsessionstate.isnewsession(VS.80).aspx). Si vale true quiere decir que la sesión se acaba de crear (por lo que antes no teníamos sesión).

    Ahora bien, si quieres hacer esto para saber si el usuario está autenticado, la manera correcta es la que dice Angel: usa Context.User.Identity.IsAuthenticated para averiguarlo: es posible tener usuario autenticado y no usar sesión.

    Por otro lado, ya en el contexto de ASP.NET MVC, la forma correcta de evitar que usuarios no autenticados accedan a acciones de controladores, es usar [Authorize]:

    public FooController : Controller
    {
      public ActionResult Bar() { ... }
      [Authorize]
      public ActionResult Baz() {...}
    }
    

     

    La acción Bar es accesible para todos los usuarios, mientras que la Baz solo para los autenticados. [Authorize] lo puedes aplicar a nivel de controlador y así todas las acciones son sólo para usuarios autenticados.

    Un saludo!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa miércoles, 10 de octubre de 2012 12:25
    miércoles, 20 de abril de 2011 15:06

Todas las respuestas

  • coloca algo como esto

    C#

    if (!String.IsNullOrEmpty(Request.Cookies["ASP.NET_SessionId"].Value))
          {
            // Hay session. Ojo reemplaza ASP.NET_SessionId por el nombre de la session dentro del elemto SessionState del archivo de configuracion 
          }
    
          if (HttpContext.User.Identity.IsAuthenticated)
          {
            // esta autenticado
          }

    VB

    ' Hay session. Ojo reemplaza ASP.NET_SessionId por el nombre de la session dentro del elemto SessionState del archivo de configuracion 
    If Not [String].IsNullOrEmpty(Request.Cookies("ASP.NET_SessionId").Value) Then
    End If
    
    		' esta autenticado
    If HttpContext.User.Identity.IsAuthenticated Then
    End If
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    • Marcado como respuesta Eder Costa miércoles, 10 de octubre de 2012 12:25
    martes, 19 de abril de 2011 18:25
  • Buenas!

    No es necesario comprobar las cookies de sesión... basta con usar Session.IsNewSession (http://msdn.microsoft.com/es-es/library/system.web.sessionstate.httpsessionstate.isnewsession(VS.80).aspx). Si vale true quiere decir que la sesión se acaba de crear (por lo que antes no teníamos sesión).

    Ahora bien, si quieres hacer esto para saber si el usuario está autenticado, la manera correcta es la que dice Angel: usa Context.User.Identity.IsAuthenticated para averiguarlo: es posible tener usuario autenticado y no usar sesión.

    Por otro lado, ya en el contexto de ASP.NET MVC, la forma correcta de evitar que usuarios no autenticados accedan a acciones de controladores, es usar [Authorize]:

    public FooController : Controller
    {
      public ActionResult Bar() { ... }
      [Authorize]
      public ActionResult Baz() {...}
    }
    

     

    La acción Bar es accesible para todos los usuarios, mientras que la Baz solo para los autenticados. [Authorize] lo puedes aplicar a nivel de controlador y así todas las acciones son sólo para usuarios autenticados.

    Un saludo!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa miércoles, 10 de octubre de 2012 12:25
    miércoles, 20 de abril de 2011 15:06