none
Acceso multiusuario autenticado RRS feed

  • Pregunta

  • Buenos días y saludos cordiales, quisiera preguntar, si tengo una aplicación para múltiples usuarios con autenticación de modo formulario, ¿Es posible utilizar una variable global que identifique el usuario que ingresa, y utilizar esa variable global para incluir ese valor en algunas tablas, de tal manera que pueda servir de filtro para consultar la información de ese usuario y no de otro, o cuál sería la manera más eficiente o inteligente de hacerlo, que no tenga problemas de seguridad y que haga más eficiente la consulta?

    Gracias por el apoyo. 

    martes, 23 de julio de 2019 16:24

Respuestas

  • No hace falta declarar una variable global. Ya viene "de fábrica". Si estás usando la autenticación por formularios "estándar", entonces el usuario queda automáticamente accesible a través de User.Identity.Name. Esto lo puedes usar en cualquiera de los formularios de la aplicación.

    Por supuesto, puedes usar si lo deseas el String que te devuelve User.Identity.Name para insertarlo en un campo de una tabla, y también puedes usarlo en el "where" de una consulta a base de datos.


    martes, 23 de julio de 2019 21:23

Todas las respuestas

  • No hace falta declarar una variable global. Ya viene "de fábrica". Si estás usando la autenticación por formularios "estándar", entonces el usuario queda automáticamente accesible a través de User.Identity.Name. Esto lo puedes usar en cualquiera de los formularios de la aplicación.

    Por supuesto, puedes usar si lo deseas el String que te devuelve User.Identity.Name para insertarlo en un campo de una tabla, y también puedes usarlo en el "where" de una consulta a base de datos.


    martes, 23 de julio de 2019 21:23
  • Gracias Alberto por la respuesta, solo me queda de duda, si es una buena práctica hacerlo de esa manera para filtrar los datos de diferentes usuarios en tablas que en teoría son generales pero que es necesario diferenciar en ellas los datos que pertenecen a diferentes usuarios. Saludos y un abrazo desde Cali Colombia.
    miércoles, 24 de julio de 2019 20:51
  • ¿Es buena práctica usar el nombre de usuario para filtrar las tablas? Bueno, sería lo que se conoce como una clave "natural" o "de negocio". Yo soy más partidario de utilizar una clave "surrogada" (que sería en este caso el "Id" o "Código" tomado de la tabla de usuarios -- un código numérico o un Guid).

    La discusión sobre si es preferible diseñar las aplicaciones y bases de datos de forma que usen claves naturales o claves surrogadas es bastante compleja. Cada una de las dos opciones tiene ventajas e inconvenientes. No es difícil encontrar información al respecto si haces una búsqueda. Ya te digo que yo me inclino por las claves surrogadas (en este caso filtraría las consultas por IdUsuario, y el IdUsuario sería un Foreign Key contra la tabla de Usuarios).

    jueves, 25 de julio de 2019 5:46
  • Gracias Alberto, me queda claro. Un abrazo.

    jueves, 25 de julio de 2019 20:16