2012-09-20 25 views
5

He estado tratando de resolver esta pregunta durante un par de semanas a través de Google y leyendo SO, y no tuve mucha suerte, así que pensé que finalmente podría intentar preguntarme a mí mismo .Autenticación de Windows de ASP.NET no funciona/No acepta credenciales

Estoy configurando un sitio muy simple ASP.NET en nuestra intranet para generar información para los usuarios internos. Estoy usando la autenticación de Windows, en lugar de acceso anónimo, porque según el usuario que acceda al sitio generaré información diferente.

En resumen, esto funciona perfectamente en las pruebas en mi máquina local Windows 7 donde desarrollé la aplicación. Sin embargo, desde el Windows 2008 R2 server donde quiero que resida, cuando abro el sitio, aparece una ventana emergente solicitando mis credenciales, e incluso si las ingreso me las pide una y otra vez. Esto sucede independientemente de si estoy accediendo al sitio de forma remota o local. Si intento usar el acceso anónimo, puedo acceder al sitio de ambas formas, pero como no puedo identificar al usuario, no puedo generar la información que me gustaría proporcionar.

Notas:

  1. En IIS, que tienen la autenticación de Windows y la suplantación de ASP.NET habilitados para el sitio. Todo lo demás está deshabilitado.

  2. Por el bien de descifrarlo, actualmente tengo el conjunto web.config configurado para permitir a todos los usuarios y no estoy rechazando ninguno.

  3. El anfitrión/URL que estoy usando para ello es toolName.organization.local
  4. que estaba preocupado de que era un problema del usuario del servidor de administración 2008 R2 que reside en un dominio diferente entonces mi usuario remoto que yo estaba probando pero nuevamente no funciona localmente tampoco.
  5. En el archivo AppHost, actualmente tengo la autenticación de Windows habilitada.

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

Es cierto que me suelen utilizar la autenticación de formularios en este servidor para todos nuestros otros sitios internos, así que estoy un poco nuevo para la autenticación de Windows y este tema. En este punto, simplemente no estoy seguro de qué probar o comprobar a continuación, por lo que cualquier consejo sería útil. Gracias.

+1

Intenta con esta herramienta de diagnóstico: http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx? Ignore la fecha de publicación, hay una versión v7.0/7.5 – MatthewMartin

Respuesta

2

En primer lugar, debe tener en cuenta que la autenticación de paso a través de Windows solo funciona con Internet Explorer y solo si el sitio está en los sitios de confianza o en el grupo de seguridad de sitios de la intranet. Firefox, Chrome, etc. siempre solicitarán credenciales.

Habiendo dicho eso, usted tiene un par de problemas.

usted debe tener un elemento <authentication mode="Windows" /> en su web.config

Debe decidir si desea que la aplicación se ejecute en el contexto del usuario, en cuyo caso también tendría una etiqueta <identity impersonat="true"/>. Si no, debería ser falso (aunque este es el valor predeterminado).

No necesita tener ninguna regla de autorización en su web.config si el sitio está completamente protegido por la autenticación de Windows.

+0

Gracias por los comentarios. Tengo un modo de autenticación configurado como sugirió y solo intento acceder al sitio a través de IE. He comentado la sección de autorización por el bien de la prueba. Me gustaría que la aplicación se ejecute en el contexto del usuario, pero no estoy muy seguro de lo que quiere decir con "una etiqueta' ". Hasta el momento sigo recibiendo el mismo mensaje de credencial de repetición. Uno esto que es interesante, la herramienta DelegConfig recomendada por un usuario anterior funciona con la autenticación de Windows localmente. Así que voy a comparar mi web.config con la de la herramienta y ver si hay algo obvio. – user1032943

+0

Esta respuesta resolvió mi problema: intentaba usar la Autenticación de Windows con Firefox (39.0.3) y obtener el cuadro de diálogo "Se requiere autenticación" sin importar lo que hice. Ejecuté mi proyecto con MSIE y la autenticación funcionó correctamente. –

8

Sé que este es un tema un poco viejo, pero tuve exactamente el mismo problema.Resulta que tenía la AppPool usando Identity: ApplicationPoolIdentity en lugar de NetworkService. Una vez que cambié eso (en Configuración avanzada en IIS7.5) ya no recibí el servidor solicitando credenciales adicionales y el traspaso funcionó perfectamente.

Espero que ayude!

0

En caso de que sea útil, el problema para mí fue que había dejado mi grupo de aplicaciones en modo Clásico, para tratar de usar los permisos NTFS. Nunca conseguí que funcionara, pero una vez que lo cambié de nuevo al modo Integrado, podía usar las etiquetas <allow> y <deny> para configurar el acceso de usuarios específicos.

Cuestiones relacionadas