Problema de autenticación al depurar en VS2013-iis express


Estoy tratando de recoger el nombre de usuario de Windows al depurar en Visual Studio 2013. Simplemente estoy usando:

httpcontext.current.user.identity.name

Si corro esto en mi servidor de Desarrollo funciona bien, si lo corro en modo de depuración en cualquier versión anterior de Visual Studio también funciona bien.

Mis problemas son - Si corro 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>
Author: KyleMit, 2013-10-22

8 answers

Acababa de actualizar a VS 2013 de VS 2012 y la identidad de usuario actual (HttpContext.Usuario.Identidad) se presentaba como anónimo.

He intentado cambiar el IIS express applicationhost.config, no hay diferencia.

La solución era mirar las propiedades del proyecto web, golpear F4 para obtener las propiedades del proyecto cuando se tiene el nivel superior del proyecto seleccionado. No haga clic derecho en el proyecto y seleccione propiedades, esto es algo completamente diferente.

Cambie la Autenticación Anónima para que se Deshabilite y la Autenticación de Windows para que se Habilite.

Funciona como salsa:)

 209
Author: Toby Simmerling,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-31 11:58:27

Mientras estaba investigando esto, encontré mi respuesta, pero no puedo encontrar la respuesta en Internet, así que pensé en compartir esto:

Solucioné mi problema modificando mi applicationhost.archivo de configuración. Mi archivo se guardó en la carpeta" \Mis documentos\IISExpress\config".

Parece que VS2013 estaba ignorando mi web.archivo de configuración y aplicación de diferentes métodos de autenticación.

Tuve que modificar esta parte del archivo para que se viera como la siguiente. En verdad, solo modifiqué el anonymousAuthentication a false y el modo windowsAuthentication a true.

<authentication>

  <anonymousAuthentication enabled="false" userName="" />

  <basicAuthentication enabled="false" />

  <clientCertificateMappingAuthentication enabled="false" />

  <digestAuthentication enabled="false" />

  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>

</authentication>
 128
Author: Neil Watson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-26 18:44:17

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: Habilitar

 41
Author: ThaNet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-08 18:34:42

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 hay necesidad de cambiar nada más

 39
Author: James Pressley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-11 13:28:56

VS 2015 cambia esto. Se añadió una.vs carpeta a mi proyecto web y el applicationhost.config estaba ahí. Hice los cambios sugeridos (window authentication = true, anon = false) y comenzó a entregar un nombre de usuario en lugar de un espacio en blanco.

 9
Author: Tom McDonald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-02 19:43:50

Abra el HOST de aplicación.archivo de configuración ubicado en el C:\Users [userid]\Documents\IISExpress\config folder. Dentro de este archivo cambie la overrideModeDefault de anonymousAthentication y windowsAuthentication a "Allow"

 <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Allow" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Allow" />
                </sectionGroup>

A continuación, cambie lockItem a "false" para AnonymousAuthenticationModule y WindowsAuthenticationModule

  <system.webServer>
            <modules>
                <!--
                <add name="HttpCacheModule" lockItem="true" />
-->
                <add name="DynamicCompressionModule" lockItem="true" />
                <add name="StaticCompressionModule" lockItem="true" />
                <add name="DefaultDocumentModule" lockItem="true" />
                <add name="DirectoryListingModule" lockItem="true" />
                <add name="IsapiFilterModule" lockItem="true" />
                <add name="ProtocolSupportModule" lockItem="true" />
                <add name="HttpRedirectionModule" lockItem="true" />
                <add name="ServerSideIncludeModule" lockItem="true" />
                <add name="StaticFileModule" lockItem="true" />
                <add name="AnonymousAuthenticationModule" lockItem="false" />
                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
                <add name="UrlAuthorizationModule" lockItem="true" />
                <add name="BasicAuthenticationModule" lockItem="true" />
                <add name="WindowsAuthenticationModule" lockItem="false" />

Realizar estos cambios permitirá que los ajustes de configuración web existentes anulen lo que hay en el archivo applicationHost para IIS Express.

 8
Author: ngiunta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-22 13:43:22

También puede modificar las propiedades del proyecto para su proyecto web, elegir "Web" en las pestañas de la izquierda, 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 local de IIS v (o sitio) para probar localmente. Tampoco afectará a otros sitios de esta manera.

Propiedades del Proyecto Web

 5
Author: ScottLenart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-31 23:34:45

Parece que la respuesta correcta es proporcionada por user3149240 anterior. Sin embargo, como Neil Watson señaló, el aplicador.archivo de configuración está en juego aquí.

Los cambios se pueden hacer realmente en el panel de propiedades VS o en el archivo, aunque en un lugar diferente. Cerca de la parte inferior de la applicationhost.el archivo de configuración es 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, usted 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:

<location path="MyApp">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

Esto es equivalente en la interfaz de usuario VS a:

Anonymous Authentication: Disabled
Windows Authentication: Enabled
 1
Author: EricksonG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-01 18:16:25