2009-03-03 72 views
9

Estoy tratando de implementar una aplicación en una red de cliente, con AD/controlador de dominio.Autenticación de Windows solicita nombre de usuario/contraseña

Mi aplicación es una simple aplicación asp.net C#, que usa la autenticación de Windows.

Estoy usando win2003.

Básicamente, utilizando VS2008, cree un nuevo sitio web alojado en IIS6.0. Solo 2 cambios. 1. En la seguridad del directorio IIS para la aplicación, habilitada "Seguridad integrada".
Nota: anonymous también está habilitado.

Solo se realizó un cambio en el código de esqueleto generado. Añadir a continuación el método Page_Load de default.aspx

using System.Security.Principal; 
... 
protected void Page_Load(object sender, EventArgs e) 
{ 
    WindowsIdentity id = WindowsIdentity.GetCurrent(); 
    Response.Write("<B>Windows Identity Check</B><br>"); 
    Response.Write("Name: " + id.Name + "<br>"); 
    Response.Write("<BR>"); 
    Response.Write("User.Identity: " + User.Identity.Name); 
    Response.Write("<BR>"); 
} 

salida de la navegación a la página: Windows Identity Nombre Fecha entrada: NT AUTHORITY \ NETWORK de User.Identity:

El User.Identity.Name no genera el nombre de usuario actual.

Como se menciona en este artículo http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

añadí:

<authorization> 
    <deny users="?"/> 
</authorization> 

De lo que userstand es que, cuando esto se añade, puedo hacer que los usuarios actuales, nombre de usuario de User.Identity.Name .

Sin embargo, una vez que agregué lo anterior, el navegador ahora me pide un nombre de usuario y una contraseña. Una vez que lo ingrese, puedo usar User.Identity.Name para obtener el nombre de usuario. Sin embargo, no quiero que aparezca el nombre de usuario/contraseña. Quiero que la aplicación autentique al usuario según sus credenciales de red.

¿Echo de menos algo?

+0

¿Qué navegador ¿Se han probado con? Solo IE pasará la autenticación de nombre de usuario/contraseña de Windows. –

+1

Eso no es necesariamente cierto: FireFox admite la Autenticación integrada de Windows. –

+0

Sí, Firefox no tiene ningún problema con esto, simplemente no trata los nombres de host locales como zona de confianza/intranet de forma predeterminada como lo hace IE, pero seguro que puede configurarse para. Incluso hay una plantilla de ADM existente en alguna parte para FF, creo que los administradores de sistemas perezosos deben usar. –

Respuesta

0

¿Qué URL está usando su sitio y cuál es la zona de IE? Si su aplicación se ejecuta fuera de la zona de LocalIntranet, la autenticación de paso a través está bloqueada, siempre solicitando usuario/contraseña.

+0

Todavía estoy intentando acceder a él localmente, usando http: // localhost/site. Indica en todos, IE, Firefox y Chrome – minalg

+0

Puede agregar los registros IIS relevantes a su pregunta, buscando la serie 401/200 de elementos de registro. También puede intentar http://127.0.0.1/site y ver si se le solicita? –

0

¿Se ha seleccionado "Habilitar autenticación integrada de Windows" en las Opciones de Internet de IE?

¿El IUSR_ y el nombre de usuario que está ingresando tienen permisos de lectura y ejecución en el directorio donde se aloja la aplicación?

¿El directorio de la aplicación reside en el servidor IIS, o está ubicado en un recurso compartido, donde entrarían en juego los permisos compartidos de Windows?

3

Compruebe que Internet Explorer sepa que el sitio es parte de la zona de la intranet local. Además, en la configuración de la zona de intranet, verifique que el inicio de sesión automático esté habilitado.

3

Su configuración en IIS es incorrecta: desactive el acceso anónimo, luego la autenticación integrada se activará, suponiendo que también lo haya configurado en su sitio web.config a través

<configuration> 
    <system.web> 
     <authentication mode="Windows" /> 
    </system.web> 
</configuration> 
0

creo que no se puede controlar desde la aplicación de servidor, es función de navegador para pasar las credenciales, en IE puede recomendar a los usuarios de verificación "Activar la autenticación de Windows integrada" en Opciones de Internet> Opciones avanzadas

0

No desea cambiar ninguna configuración en el archivo we.config. En el administrador del servidor IS en Autenticación del sitio, solo active la autenticación de Windows y desactive otras autenticaciones. enter image description here

Autenticación de Windows necesita sus = credenciales de Windows para autenticar al usuario. Esa es la razón para solicitar el inicio de sesión. Para evitar eso, debe configurar el sitio IP o dominio como un sitio confiable de intranet en el navegador de su cliente. para eso;

1) Ir a la configuración del navegador -> Configuración de proxy abierto -> Seguridad -> Intranet local -> Sitios -> Avanzado

2) Publique sus dominio del sitio o la dirección IP enter image description here

Ahora ver si su problema está bien después de un claro almacenamiento en caché del navegador.

Esto funciona para mí. :)

0

No desea cambiar ninguna configuración en el archivo we.config. En el administrador del servidor IS en Autenticación del sitio, solo active la autenticación de Windows y desactive otras autenticaciones. enter image description here

Autenticación de Windows necesita sus = credenciales de Windows para autenticar al usuario. Esa es la razón para solicitar el inicio de sesión. Para evitar eso, debe configurar el sitio IP o dominio como un sitio confiable de intranet en el navegador de su cliente. para eso;

1) Ir a la configuración del navegador -> Configuración de proxy abierto -> Seguridad -> Intranet local -> Sitios -> Avanzado

2) Publique sus dominio del sitio o la dirección IP enter image description here

Ahora ver si su problema está bien después de un claro almacenamiento en caché del navegador.

Esto funciona para mí. :)

Comprobar esto también Receiving login prompt using integrated windows authentication

+0

No publiques la misma respuesta varias veces. – Sunil

Cuestiones relacionadas