none
Sesion de Usuario RRS feed

  • Pregunta

  • Saludos, estoy haciendo una aplicación web y necesito saber :

    ¿Cómo obtener el nombre del usuario identificado en windows y mostrarlo en la página maestra (site.master) de la aplicación, apenas se cargue?

    miércoles, 14 de noviembre de 2018 20:45

Respuestas

  • Empezando por el punto 3, que es el más grave: No, no funcionará. Solo se puede usar la autenticación integrada de Windows cuando los equipos clientes forman parte del mismo árbol de dominios de Directorio Activo que el servidor web. En general este no será el caso si tu servidor está en Azure, salvo que expresamente hayas tomado todos los pasos para integrar un AD en Azure con tu AD interno. Y lógicamente requiere que los PCs sean miembors del dominio, no funcionará si está abierta al público en general y usan PCs que no sean miembros del dominio de tu empresa. En caso de que sí que lo sean y que sí que hayas configurado el AD en Azure, entonces ya solo queda configurar lo que te dije al principio, de que en cada PC hay que habilitar la autenticación integrada fuera de la zona intranet. Esto hay que hacerlo uno por uno en cada PC, no se puede conseguir de ninguna manera desde tu aplicacion o desde el servidor web.

    En cuanto al punto 2, si da un error puede casi seguro es porque has puesto el tag fuera de su sitio en el web.config, o tiene algún error de sintaxis. No lo copias desde el mensaje del foro )está tecleado de memoria), cópialo desde algún web.config que ya sepas de antemano que está configurado correctamente.

    En el punto 1, lo más sencillo es escribir <%=User.Identity.Name%> dentro del html de la master.

    jueves, 15 de noviembre de 2018 11:28

Todas las respuestas

  • Cuando dices "el usuario identificado en Windows", me imagino que te refieres al usuario del Windows en el que se ejecuta el navegador que está accediendo a tu servidor (no el  usuario del Windows del Servidor), ¿verdad?

    Para hacer eso se necesitan varios requisitos:

    El navegador tiene que ser Internet Explorer o Edge, o si es otro distinto hay que leer la documentación para habilitarle la opción de que transmita la autenticación integrada de Windows. Incluso si es uno de los navegadores de Microsoft, solo la transmiten dentro de la zona Intranet; si lo ejecutas en un equipo fuera de la Intranet hay que cambiar la configuración, porque de forma predeterminada no se transmite. Esto hay que hacerlo uno por uno en todos los navegadores que accedan a tu aplicación (salvo que sean IE o Edge y estés en la Intranet).

    En el servidor donde has desplegado el programa, hay que acudir a la configuración de IIS y activarle a tu sitio web la opción de autenticación integrada, y deshabilitar la anónima a no ser que quieras combinar unas páginas anónimas y otras autenticadas.

    En el web.config de tu aplicación asp.net, hay que poner el típico <authentication mode="Windows"/>

    Y si todo eso está bien hecho, entonces basta que en tu página muestres el valor de User.Identity.Name, que será el nombre del usuario buscado.


    miércoles, 14 de noviembre de 2018 22:10
  • Gracias pero,

    1.- si, cuando digo usuario identificado en windows, si me refiero al usuario que ya inicio su sesión,

    por eso quiero saber, como (nuevamente la pregunta),  muestro User.Identity.Name,  en la cabecera de la pagina maestra, que estoy haciendo con boostrap.

    2.- intente con la configuración <authentication mode="Windows"/>, dentro del web config, pero al hacer correr el programa me envía mensaje de error ,  centrado en esa linea,  podrían indicarme, si va algo antes o después de esa linea?, se los agradecería.

    3.- la aplicación en cuestión va a estar alojada en un servidor en la nube, con azure, asi que si hay que cambiar algo en algun lugar, agradeceria la(s) indicacion(es).

    Gracias por la ayuda..


    miércoles, 14 de noviembre de 2018 23:39
  • Empezando por el punto 3, que es el más grave: No, no funcionará. Solo se puede usar la autenticación integrada de Windows cuando los equipos clientes forman parte del mismo árbol de dominios de Directorio Activo que el servidor web. En general este no será el caso si tu servidor está en Azure, salvo que expresamente hayas tomado todos los pasos para integrar un AD en Azure con tu AD interno. Y lógicamente requiere que los PCs sean miembors del dominio, no funcionará si está abierta al público en general y usan PCs que no sean miembros del dominio de tu empresa. En caso de que sí que lo sean y que sí que hayas configurado el AD en Azure, entonces ya solo queda configurar lo que te dije al principio, de que en cada PC hay que habilitar la autenticación integrada fuera de la zona intranet. Esto hay que hacerlo uno por uno en cada PC, no se puede conseguir de ninguna manera desde tu aplicacion o desde el servidor web.

    En cuanto al punto 2, si da un error puede casi seguro es porque has puesto el tag fuera de su sitio en el web.config, o tiene algún error de sintaxis. No lo copias desde el mensaje del foro )está tecleado de memoria), cópialo desde algún web.config que ya sepas de antemano que está configurado correctamente.

    En el punto 1, lo más sencillo es escribir <%=User.Identity.Name%> dentro del html de la master.

    jueves, 15 de noviembre de 2018 11:28