asp.net-mvc - studio - publicar sitio web iis windows server 2012
No se puede lograr que la autenticación de Windows funcione a través de IIS local (7)
Así que creé un nuevo proyecto ASP.NET MVC usando la plantilla de intranet. web.config contiene los valores apropiados (por ejemplo, <authentication mode="windows"/>
).
Si enciendo la aplicación web utilizando el servidor web VS, todo se ve bien - la página muestra mi dominio de Windows y nombre de usuario y todo. Sin embargo, esto funciona en Opera y Safari, así como en IE y FF, lo que me dice que no está utilizando la autenticación de Windows (ya que, a mi leal saber y entender, esto no funciona en ningún navegador excepto IE / FF).
El siguiente paso es hacer que funcione a través de IIS local. Creo una entrada de archivo de hosts que apunta www.mysite.mydomain a 127.0.0.1. Por lo tanto, en IIS creo un sitio web con un enlace a www.mysite.mydomain y habilito la autenticación de Windows y deshabilito la autenticación anónima.
He configurado IE y FF para habilitar la autenticación de Windows de la siguiente manera:
ES DECIR
- Agregar URL al grupo de intranet
- Asegúrese de que la autenticación de Windows esté habilitada en la configuración avanzada
FF
Coloque ''www.mysite.mydomain'' en la configuración de configuración network.automatic-ntlm-auth.trusted-uris.
Pero cuando abro www.mysite.mydomain en IE / FF obtengo un aviso de inicio de sesión. Curiosamente, incluso cuando escribo mi nombre de usuario de Windows aquí, todavía falla y me muestra de nuevo el mensaje de inicio de sesión.
No tenemos directorio activo aquí, pero tengo entendido que debería funcionar bien con una cuenta local.
No puedo pensar en nada más que deba hacer. ¿Alguna sugerencia?
Editar: recientemente hemos cambiado al uso de Active Directory y el problema persiste.
Editar: cuando cancelo la solicitud de inicio de sesión, me llevan a la página ''Error detallado de IIS 7.5'' con la siguiente información:
Error HTTP 401.2: no autorizado No tiene autorización para ver esta página debido a encabezados de autenticación no válidos. **
¿Intentó poner el dominio frente al nombre de usuario?
DOMAIN/username
Si no tiene una cuenta de dominio, intente prefijar su nombre de usuario con el nombre de la máquina:
MYCOMPUTER/myusername
¿Por qué IIS local? ¿Puedes usar IIS Express local?
Si es así, intente esto. Parece que IIS Express tiene por defecto la Autenticación de Windows configurada en falso.
Cambio
<windowsAuthentication enabled="false">
a "verdadero" en el archivo applicationhost.config (en la carpeta ''C: / Users [Profile] / Documents / IISExpress / config''). Esto funciona para mí
Debería verificar si tiene la autenticación de Windows instalada / habilitada. Puede sonar extraño, pero en IIS 7 debe instalar y habilitar los diversos métodos de autenticación. Consulte http://support.microsoft.com/kb/942043/ para obtener más información, consulte la sección citada a continuación.
Causa 1
La aplicación web está configurada para usar la autenticación integrada de Windows. Sin embargo, la función Autenticación de Windows no está activada. O bien, la sección del módulo nativo de autenticación de Windows integrada del archivo ApplicationHost.config o del archivo Web.config no es válida. Para resolver este problema, vea la Resolución 1.
Original
Por lo general, cuando intenta ver una página web asp.net alojada en IIS y recibe un aviso de inicio de sesión, no significa que no recibió sus credenciales o que no está autenticado. Lo que significa es que la cuenta con la que se ejecuta su sitio web no tiene los permisos adecuados para trabajar con los archivos.
En IIS 6 y 7, puede cambiar fácilmente la cuenta de usuario con la que se ejecuta el grupo de aplicaciones. Intente cambiar la identidad del grupo de aplicaciones a una cuenta con más acceso específicamente diseñado para esto. O si desea continuar con la cuenta existente (IUSR_? Servicio de red?) Puede otorgarle a esa cuenta más permisos en el directorio donde está almacenado su sitio web.
Este artículo está específicamente dirigido a BizTalk pero casi no tiene referencias y se centra en solucionar problemas de permisos con IIS y grupos de aplicaciones: http://msdn.microsoft.com/en-us/library/aa954062.aspx
Obtuve este error cuando habilité la autenticación de Windows. Quería autorizar al usuario según el inicio de sesión de Windows y no hay ninguna página de inicio de sesión en mi aplicación.
Me solucionó el error agregando lo siguiente en mi archivo de Web config
. Bajo la etiqueta system.web
, cambié el authentication mode="None"
al authentication mode="Forms"
.
En la etiqueta appSettings
, agregué add key="owin:AutomaticAppStartup" value="false"
Para garantizar que IIS utilice la Autenticación de Windows, creo que debería intentar activar otros métodos de autentificación. Si la Autenticación anónima está habilitada, la autenticación de Windows no funcionará. También puede leer este Artículo de soporte de Microsoft que describe los requisitos de IE e IIS en detalles.
Recientemente, pasé tres días tratando de resolver el mismo problema y eso me volvió loco. Sucedía en una configuración de equilibrio de carga donde uno de los servidores se autenticaba correctamente mientras que el otro fallaba. Investigar el problema y, finalmente, resolverlo, resultó no estar relacionado con el entorno de equilibrio de carga, podría suceder con cualquier servidor al autenticarse utilizando Autenticación de Windows y el servidor recibe un nombre distinto al reconocido por Active Directory.
1. Habilite el registro de Kerberos
Para diagnosticar correctamente su problema, deberá habilitar el registro Kerberos en el equipo que aloja su sitio IIS. Para hacerlo, agregue la siguiente entrada de registro:
HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / Lsa / Kerberos / Parameters
Agregue valor de registro LogLevel con ValueType REG_DWORD y valor 0x1 .
Una vez que enciende el registro, luego intenta autenticarse, obtendrá errores registrados en su registro de aplicación de Windows. Puede ignorar el error KDC_ERR_PREAUTH_REQUIRED (esto es solo parte del handshake) pero si obtiene el error KDC_ERR_C_PRINCIPAL_UNKNOWN que significa que su controlador AD no reconoce su servidor, por lo tanto, debe seguir los pasos a continuación.
2. KDC_ERR_C_PRINCIPAL_UNKNOWN
si obtiene KDC_ERR_C_PRINCIPAL_UNKNOWN, significa que el nombre "mysite.midominio.com" es diferente de cómo el AD reconoce su máquina, por lo que no puede proporcionar un vale de kerberos válido. En ese caso, debe registrar un Nombre principal de servicio (SPN) para "''www.misitio.mydomain" en el AD.
En su controlador de AD, ejecute este comando; necesitará privilegios de administrador de dominio:
Setspn -A HTTP/mysite.mydomain YOUR_MACHINE_HOSTNAME
3. Use una identidad personalizada para su grupo de aplicaciones
Finalmente, haga que el grupo de aplicaciones use una cuenta personalizada que pertenezca a Active Directory en lugar de usar NetworkService. Esto se puede hacer en configuraciones avanzadas de su grupo de aplicaciones.
y voilá.
Notas: El problema podría (poco probable) estar relacionado con tener varios SPN registrados en la misma máquina, en ese caso deberá ejecutar un comando para eliminar los SPN duplicados, pero dudo que este sea el caso. También intente agregar un enlace diferente a su sitio (que no use un nombre personalizado), algo como htttp: // localhost: custom_port_number y ver si la autenticación funciona. Si funciona, esta es una indicación adicional de que estás sufriendo el mismo problema que tuve.
whitelist en la whitelist un dominio especificado en el archivo de hosts para que funcione la autenticación de Windows.
Copiado desde el enlace de arriba para un acceso rápido:
- Establezca la entrada de registro DisableStrictNameChecking en 1. Para obtener más información acerca de cómo hacerlo, consulte el artículo 281308 en Microsoft Knowledge Base.
- Haga clic en Inicio, haga clic en Ejecutar, escriba regedit y luego haga clic en Aceptar.
- En el Editor del registro, busque y luego haga clic en la siguiente clave de registro: HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / Lsa / MSV1_0
- Haga clic con el botón derecho en MSV1_0, seleccione Nuevo y luego haga clic en Valor de cadena múltiple.
- Tipo BackConnectionHostNames, y presiona ENTRAR.
- Haga clic con el botón secundario en BackConnectionHostNames y luego haga clic en Modificar.
- En el cuadro Información del valor, escriba el nombre de host o los nombres de host para los sitios que están en la computadora local y luego haga clic en Aceptar.
- Salga del Editor del registro y luego reinicie el servicio IISAdmin.