Estoy tratando de elegir el nombre de usuario de Windows al depurar en Visual Studio 2013. Simplemente estoy usando:
httpcontext.current.user.identity.name
Si ejecuto esto en mi Dev Server, funciona bien, si lo ejecuto en modo de depuración en cualquier versión anterior de Visual Studio, también funciona bien.
Mi problema es: si ejecuto esto en Visual Studio 2013, obtengo una cadena vacía.
Mi configuración web es la siguiente.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
Mientras investigaba esto, encontré mi respuesta, pero no puedo encontrar la respuesta en Internet, así que pensé en compartir esto:
Solucioné mi problema modificando mi archivo applicationhost.config. Mi archivo se guardó en la carpeta "\ Mis documentos \ IISExpress \ config".
Parece que VS2013 ignoraba mi archivo web.config y aplicaba diferentes métodos de autenticación.
Tuve que modificar esta parte del archivo para que se pareciera a la siguiente. En verdad, solo modifiqué anonymousAuthentication para que fuera falso y el modo de windowsAuthentication para verdadero.
fuente
anonymousAuthentication
. Es suficiente encenderwindowsAuthentication
. Esta configuración controla qué mecanismos de autenticación pueden utilizar los sitios web.En Visual Studio 2013 Y VS15 (pero supongo que si es lo mismo para todas las demás versiones) simplemente presione F4 y cambie estas dos propiedades: - Autenticación anónima: Desactivar - Autenticación de Windows: Activar
fuente
En VS2013 F4 en su proyecto para ver la ventana de propiedades y deshabilitar el acceso anónimo y habilitar la "autenticación de Windows"
Entonces funcionará. No es necesario cambiar nada más
fuente
VS 2015 cambia esto. Agregó una carpeta .vs a mi proyecto web y el applicationhost.config estaba allí. Hice los cambios sugeridos (autenticación de ventana = verdadero, anon = falso) y comenzó a entregar un nombre de usuario en lugar de un espacio en blanco.
fuente
Abra el archivo applicationHost.config ubicado en la carpeta C: \ Users [userid] \ Documents \ IISExpress \ config. Dentro de este archivo, cambie el overrideModeDefault de anonymousAthentication y windowsAuthentication a "Allow"
A continuación, cambie lockItem a "false" para AnonymousAuthenticationModule y WindowsAuthenticationModule
Hacer estos cambios permitirá que la configuración de configuración web existente anule lo que está en el archivo applicationHost para IIS Express.
fuente
También puede modificar las propiedades del proyecto para su proyecto web, elegir "Web" en las pestañas de la izquierda y luego cambiar el menú desplegable Servidores a "IIS local". Cree un nuevo directorio virtual y use el administrador de IIS para configurar su sitio / grupo de aplicaciones como desee.
Prefiero este método, ya que normalmente tendría un directorio v (o sitio) de IIS local para probarlo localmente. Tampoco afectará a ningún otro sitio de esta manera.
fuente
Parece que la respuesta correcta la proporciona el usuario3149240 anterior. Sin embargo, como señaló Neil Watson, el archivo applicationhost.config está en juego aquí.
Los cambios se pueden realizar en el panel de propiedades de VS o en el archivo, aunque en un lugar diferente. Cerca de la parte inferior del archivo applicationhost.config hay un conjunto de elementos de ubicación. Cada aplicación para IIS Express parece tener uno de estos. Cambiar la configuración en la interfaz de usuario actualiza esta sección del archivo. Por lo tanto, puede cambiar la configuración a través de la interfaz de usuario o modificar este archivo.
Aquí hay un ejemplo con la autenticación anónima desactivada y la autenticación de Windows activada:
Esto es equivalente en la interfaz de usuario de VS a:
fuente
F4 no siempre me lleva a este panel. Además, a menudo se dice que una imagen vale más que mil palabras.
fuente