Estoy desarrollando un sitio de intranet utilizando C# y ASP.NET MVC. Tengo SQL Server en una máquina y IIS se está ejecutando en una máquina separada. Me gustaría que un usuario visita el sitio de intranet y sin preguntar al usuario de internet explorer envía a los usuarios las credenciales de windows para IIS y luego se pasa a sql server significado de sql server puede ver el usuario que accede a la base de datos.

Soy consciente de la Kerberos salto doble problema y es este estoy tratando de conseguir alrededor. En la actualidad puedo conseguir, es decir, a pasar las credenciales de windows con IIS y autenticar bien. Yo simplemente no puede obtener IIS para pasar en esas credenciales de SQL Server y en lugar de la petición que actualmente se ejecuta en virtud de la aplicación de la identidad del grupo que está configurado para una cuenta de servicio de dominio «htu\srv-htu-iis».

Mi configuración es la siguiente:

Web.Config

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <deny users="?" />
    </authorization>
    <identity impersonate="true" />
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

Cadena De Conexión

connection string=&quot;data source=hturesbsqlp01;initial catalog=R2_Dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"

Configuración de Autenticación de IIS

Anonymous Authentication = Disabled
ASP.NET Impersonation = Enabled
Forms Authentication = Disabled
Windows Authentication = Enabled

IIS Aplicación de Configuración del grupo de

Managed Pipeline = Integrated
Identity = htu\srv-htu-iis (domain service account)

Configuración De Active Directory

La cuenta de servicio de dominio htu\srv-htu-iis ha tenido un nombre principal de servicio conjunto que se asocia a nuestro sitio web con la cuenta.

De Active directory tiene

Allow Delagation to any service

SQL Server se ejecuta en su propio SQL Dominio de la cuenta de Servicio.

Pruebas

Me encontré con el siguiente código de análisis:

System.Web.HttpContext.Current.User.Identity.Name

este correctamente devolver las credenciales de windows del usuario que accede al sitio

System.Security.Principal.WindowsIdentity.GetCurrent().Name

retorno de la cuenta de servicio de dominio «htu\srv-htu-iis», que es lo que la aplicación de la piscina de la identidad bajo la que se ejecuta.

¿Alguien puede proporcionar a la dirección como a dónde podría ir mal?

  • Es esta una de equilibrado de carga de medio ambiente?
  • No, No es así (como yo sepa!)
  • Has mirado en ello, por LO que stackoverflow.com/questions/4618552/… y también así: stackoverflow.com/questions/13706580/… Que cubren el tema bastante bien.
  • TimG gracias por los mensajes que me perdí estos a pesar de la búsqueda. Tienen un par de opciones para mí tratar en la mañana!
  • Excelente documentación – este fue nuestro problema: Canalización Administrada = Integrada

1 Comentario

  1. 14

    Bien para cualquier persona que visite esta cuestión en el futuro. Me resuelva esta reiniciando el Servicio IIS…doh! Parece que mis opciones eran bien si sólo necesita un reinicio del servicio!

    • pero…. de usuario que tienes en sql?
    • Como yo lo entiendo, el usuario que visita el sitio también tiene acceso directo a la de SQL Server

Dejar respuesta

Please enter your comment!
Please enter your name here