none
Estoy usando la autenticacion de asp.net en mi aplicacion y guardo en Thread.CurrentPrincipal.Identity.Name el usuario, es posible guardar otro dato a parte del nombre

    Question

  • Hola como estan todos...

    Estoy guardando en Thread.CurrentPrincipal.Identity.Name el nombre de mi usuario, pero me interesa tener en algun lado otro dato de mi usuario "pondre como ejemplo el id".... Lo que estoy haciendo ahorita es guardandolo en una variable de Session,

    Session[Thread.CurrentPrincipal.Identity.Name] = <valor>;

    pero como se sabe si el usuario entra con otra ventana del explorador, otro navegador, etc... La data no estara...

    Asi que cada vez que la data no esta tengo que ir a base de datos, obtenerla y volverla a guardar en mi variable de session... Hay alguna otra forma o parte para guardar este dato y no tener que ir a base de datos y hacer esas cosas que tienen un gran impacto en mi servidor...

    Gracias a todos de antemano

    Thursday, October 13, 2011 6:14 AM

Answers

  • pero como se sabe si el usuario entra con otra ventana del explorador, otro navegador, etc... La data no estara...

    si abres esa otra pagina con javascript usando

    window.open()

    aun se coinserva la session, porque no se considera una instancia nueva

     

    si el usuario abre puntualmente una nueva instancia es logico que suceda porque se entiende eso se quiere lograr, crear otro inicio de session en el sitio

     

    Hay alguna otra forma o parte para guardar este dato y no tener que ir a base de datos y hacer esas cosas que tienen un gran impacto en mi servidor

    hasta donde se no hay muchas alternativas en esto, usar la session no me parece mal

    quizas podrias crear una clase

    public class UserInfo{

        public string Nombre {get ;set;}

        public int Edad{get ;set;}

        public string Cargo{get ;set;}

    }

    como veras al loguear podrias creas una instancia de esta clase y ponerla en la session, peor no encesitas usar

    Session[Thread.CurrentPrincipal.Identity.Name]

    puedes solo usas

    Session["UserInfo"]

    recuerda que aunque el nombre de la key es la misma, esta es unica por usuario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by AdyIr Friday, October 14, 2011 4:00 AM
    Thursday, October 13, 2011 12:21 PM
  • Hola.

    Si estás usando la autenticación de asp.net, Thread.CurrentPrincipal.Identity.Name contendrá por sí sólo el nombre del usuario. Ésto se guarda en una "cookie" que será válida (en principio) si abres otra ventana del mismo explorador.

    Ahora bien, si abres otro explorador, tendrás que volver a validarte porque no se comparten los datos entre exploradores.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Marked as answer by AdyIr Friday, October 14, 2011 3:57 AM
    Thursday, October 13, 2011 8:44 AM

All replies

  • Hola.

    Si estás usando la autenticación de asp.net, Thread.CurrentPrincipal.Identity.Name contendrá por sí sólo el nombre del usuario. Ésto se guarda en una "cookie" que será válida (en principio) si abres otra ventana del mismo explorador.

    Ahora bien, si abres otro explorador, tendrás que volver a validarte porque no se comparten los datos entre exploradores.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Marked as answer by AdyIr Friday, October 14, 2011 3:57 AM
    Thursday, October 13, 2011 8:44 AM
  • Hola,

    Puedes usar la clase FormsAuthentication para esto no?

    http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.aspx

    Un saludo


    http://geeks.ms/blogs/lruiz - MADNUG Member - Spenta Consulting .: MCP -MCTS :.
    Thursday, October 13, 2011 11:47 AM
  • pero como se sabe si el usuario entra con otra ventana del explorador, otro navegador, etc... La data no estara...

    si abres esa otra pagina con javascript usando

    window.open()

    aun se coinserva la session, porque no se considera una instancia nueva

     

    si el usuario abre puntualmente una nueva instancia es logico que suceda porque se entiende eso se quiere lograr, crear otro inicio de session en el sitio

     

    Hay alguna otra forma o parte para guardar este dato y no tener que ir a base de datos y hacer esas cosas que tienen un gran impacto en mi servidor

    hasta donde se no hay muchas alternativas en esto, usar la session no me parece mal

    quizas podrias crear una clase

    public class UserInfo{

        public string Nombre {get ;set;}

        public int Edad{get ;set;}

        public string Cargo{get ;set;}

    }

    como veras al loguear podrias creas una instancia de esta clase y ponerla en la session, peor no encesitas usar

    Session[Thread.CurrentPrincipal.Identity.Name]

    puedes solo usas

    Session["UserInfo"]

    recuerda que aunque el nombre de la key es la misma, esta es unica por usuario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by AdyIr Friday, October 14, 2011 4:00 AM
    Thursday, October 13, 2011 12:21 PM
  • pero como se sabe si el usuario entra con otra ventana del explorador, otro navegador, etc... La data no estara...

    si abres esa otra pagina con javascript usando

    window.open()

    aun se coinserva la session, porque no se considera una instancia nueva

     

    si el usuario abre puntualmente una nueva instancia es logico que suceda porque se entiende eso se quiere lograr, crear otro inicio de session en el sitio

     

    Hay alguna otra forma o parte para guardar este dato y no tener que ir a base de datos y hacer esas cosas que tienen un gran impacto en mi servidor

    hasta donde se no hay muchas alternativas en esto, usar la session no me parece mal

    quizas podrias crear una clase

    public class UserInfo{

        public string Nombre {get ;set;}

        public int Edad{get ;set;}

        public string Cargo{get ;set;}

    }

    como veras al loguear podrias creas una instancia de esta clase y ponerla en la session, peor no encesitas usar

    Session[Thread.CurrentPrincipal.Identity.Name]

    puedes solo usas

    Session["UserInfo"]

    recuerda que aunque el nombre de la key es la misma, esta es unica por usuario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Hola, si bueno sera asi, gracias por la aclaratoria... Tambien tienes toda la razon con el nombre de la referencia de la variable de session no habia tomado en cuenta eso... Muchas graciasuna vez mas!!!
    Friday, October 14, 2011 4:00 AM