Autenticación de Windows IIS Express

245

Estoy tratando de usar IIS Express con VS2010 para alojar una aplicación Silverlight. Modifiqué mi archivo applicationhost.config para permitir la modificación de la configuración adecuada. Tengo lo siguiente en mi web.config:

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

No estoy siendo autenticado y mi llamada de servicio de dominio devuelve un registro nulo como usuario. Pude hacer que esto funcione después de instalar VS2010 SP1 BETA, pero estoy tratando de hacer que esto funcione solo con IIS Express.

¿Cómo habilito la autenticación de Windows para trabajar con IIS Express? ¿Hay una configuración que me falta?

marca
fuente

Respuestas:

276

opción-1 :

edite el \My Documents\IISExpress\config\applicationhost.configarchivo y habilite WindowsAuthentication, es decir:

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

opción-2 :

Desbloquee la sección de autenticación de Windows en \ Mis documentos \ IISExpress \ config \ applicationhost.config de la siguiente manera

<add name="WindowsAuthenticationModule" lockItem="false" />

Modifique la configuración de anulación para los tipos de autenticación necesarios para 'Permitir'

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

Agregue siguiente en la aplicación web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

El siguiente enlace puede ayudar: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

Después de instalar VS 2010 SP1, puede ser necesario aplicar la opción 1 + 2 para que funcione la autenticación de Windows. Además, es posible que deba configurar la autenticación anónima como falsa en IIS Express applicationhost.config:

<authentication>

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

para VS2015, el archivo de configuración del host de la aplicación IIS Express se puede encontrar aquí:

$(solutionDir)\.vs\config\applicationhost.config

y la <UseGlobalApplicationHostFile>opción en el archivo del proyecto selecciona el archivo de configuración predeterminado o específico de la solución.

vikomall
fuente
Gracias. Pero probé las opciones anteriores. Pero todavía no puedo usar la autenticación de Windows. Supongo que tendré que esperar a que VS2010 / SP1 obtenga esta funcionalidad.
Mark
3
La opción dos funcionó para mí. Sin embargo, tardé un tiempo en encontrar esta publicación.
TodK
Esta pregunta ya no se aplica desde que salió VS2010 sp1. Estaba tratando de hacerlo funcionar sin instalar sp1. Supongo que sp1 está haciendo algo para configurarlo la primera vez que simplemente no pude entender. Puedo seguir adelante y marcar esta respuesta correcta, aunque realmente no lo es, ya que no se instaló sp1 como requisito previo.
Mark
1
¡Gracias hombre! NTLM funcionó deshabilitando la autenticación anónima.
Rob Angelier
44
En VS2015, la configuración de IIS Express se trasladó a la estructura de la solución, específicamente $ (SolutionDir) \. Vs \ config \ applicationhost.config, lamentablemente, no tiene en cuenta la configuración existente en MyDocuments \ IISExpress, por lo que deberá personalizarse cualquier personalización.
Tedford el
401

Visual Studio 2010 SP1 y 2012 agregaron soporte para IIS Express eliminando la necesidad de editar corchetes angulares.

  1. Si aún no lo ha hecho, haga clic con el botón derecho en un proyecto con sabor a web y seleccione "Usar IIS Express ...".
  2. Una vez completado, seleccione el proyecto web y presione F4para enfocar el panel Propiedades.
  3. Establezca la propiedad "Autenticación de Windows" en Activada y la propiedad "Autenticación anónima" en Desactivada.

ingrese la descripción de la imagen aquí

Creo que esta solución es superior a las opciones de vikomall.

  • La opción n. ° 1 es un cambio global para todos los sitios de IIS Express.
  • La opción # 2 deja el desarrollo en la web.config.
    • Además, probablemente provocará un error cuando se implemente en IIS 7.5 a menos que siga el procedimiento de "desbloqueo" en la aplicación Host.config de su servidor IIS.

La solución basada en la interfaz de usuario anterior utiliza elementos de ubicación específicos del sitio en applicationHost.config de IIS Express, dejando la aplicación intacta.

Más información aquí: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx

roryWoods
fuente
55
Para enfatizar lo que me perdí, el menú contextual de propiedades y el Alt-Enteracceso directo no suplantan por completo los detalles del panel de propiedades que le permiten cambiar si la autenticación de Windows está habilitada o no. Use F4o haga clic en el panel de propiedades para ver realmente las propiedades.
Kaleb Pederson
Luché con esta tarea durante varios días antes de comenzar de nuevo con este artículo: msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx Básicamente, ignore todo en la publicación original, comience de nuevo con un " virgin "applicationhost.config y solo habilite la configuración según esta respuesta. ¡Finalmente obtengo la autenticación de Windows! ¡¡Gracias!!
DaveN59
Termina cambiando la configuración IISExpressWindowsAuthentication de 'habilitado' a deshabilitado 'en el .csproj. <IISExpressWindowsAuthentication> deshabilitado </IISExpressWindowsAuthentication>
Cameron Taggart
77
Esas 2 opciones están atenuadas y deshabilitadas para mí. ¿Alguna idea de por qué?
punzón
1
las 2 opciones están atenuadas porque tiene esto en su IIS Express Config <section name = "anonymousAuthentication" overrideModeDefault = "Allow" /> <section name = "windowsAuthentication" overrideModeDefault = "Allow" /> saque el overrideModeDefault = "Allow "y se desvanecerán
Micah Armantrout
9

Sobre la base de la respuesta de booij boy, verifique si marcó la función "autenticación de Windows" en el Panel de control -> Programas -> Activar o desactivar las características de Windows -> Servicios de información de Internet -> Servicios de World Wide Web -> Seguridad

Además, parece haber una gran diferencia al usar Firefox o Internet Explorer. Después de habilitar la "autenticación de Windows", funciona para mí, pero solo en IE.

abejas73
fuente
2
Y hacer que funcione en firefox: markmonica.com/2007/11/20/…
bees73
5

Además de estas excelentes respuestas, en el contexto de un entorno de desarrollo IISExpress, y para frustrar el infame error "system.web/identity@impersonate", simplemente puede asegurarse de que la siguiente configuración esté en su archivo applicationhost.config .

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

Esto le permitirá una mayor flexibilidad durante el desarrollo y las pruebas, aunque asegúrese de comprender las implicaciones de usar esta configuración en un entorno de producción antes de hacerlo.

Publicaciones útiles:

Chiramisu
fuente
Llegué a esto completamente por accidente, pero funcionó :-)
joshmcode
2

En el Administrador IIS, haga clic en su sitio. Debe estar "en la vista de características" (en lugar de "vista de contenido")

En la sección IIS de "vista de características", elija la llamada "autenticación" de características y haga clic en ella. Aquí puede habilitar la autenticación de Windows. Esto también es posible (creo que en una de las sugerencias del hilo) mediante una configuración en web.config (...)

Pero tal vez tenga un web.config con el que no quiera examinar demasiado. Entonces este hilo no sería de mucha ayuda, por eso agregué esta respuesta.


fuente
0

Esta respuesta puede ayudar si: 1) su sitio solía funcionar con la autenticación de Windows antes de actualizar a Visual Studio 2015 y 2) y su sitio está intentando cargarse /login.aspx(aunque no haya dicho archivo en su sitio).

Agregue las siguientes dos líneas a la appSettingssección de su sitio Web.config.

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
Teófilo
fuente
0

En la misma nota: VS 2015, .vs \ config \ applicationhost.config no está visible o no está disponible.

Por defecto, la carpeta .vs está oculta (al menos en mi caso).

Si no puede encontrar la carpeta .vs, siga los pasos a continuación.

  1. Haga clic derecho en la carpeta Solución
  2. seleccione 'Propiedades'
  3. En la Attributessección, haga clic enHidden casilla de verificación (opción predeterminada sin marcar),
  4. luego haga clic en el botón 'Aplicar'
  5. Aparecerá la ventana de confirmación 'Aplicar cambios a esta carpeta, subcarpeta y archivos', seleccione la opción, presione 'Aceptar'.

    Repita los pasos 1 a 5, excepto en step 3, esta vez necesita uncheckla opción 'Oculta' que marcó anteriormente.

Ahora debería poder ver la carpeta .vs.

SatheeshN
fuente
0

Después de hacer todo en las respuestas anteriores, descubrí que no estaba ejecutando Visual Studio como administrador. Después de ejecutar como administrador, el problema se resolvió.

Alisson
fuente