Número: En ASP.NET 4.0, uso el servicio web ReportService2005.asmx
de mi servidor SSRS 2005 para obtener una lista de informes. También en .NET, utilizo Entity Framework para comunicarme con mi base de datos MS-SQL 2005. Cuando uso Visual Studio Development Server como mi servidor web, las llamadas a SSRS y SQL funcionan bien. Pero cuando cambio a IIS 5.1, tanto SSRS como el código de entidad producen errores. Yo uso solo Windows/Autenticación integrada en IIS.¿Por qué Windows/Integrated Authentication en IIS no pasa las credenciales de usuario a SSRS y SQL?
errores: Para SSRS, consigo The request failed with HTTP status 401: Unauthorized.
Para Entity Framework, consigo Login failed for user ''. The user is not associated with a trusted SQL Server connection.
soluciones intentadas: en el web.config añadí <identity impersonate="true" />
y que los errores de Entity Framework fijos pero no errores de SSRS. Expandí la referencia identity
para incluir mi nombre de usuario y contraseña, y eso corrigió todos los errores.
Pregunta: ¿Por qué la especificación de mi nombre de usuario y contraseña corregir los errores, y por qué dicen SQL No estoy especificando un nombre de usuario (''
)? Pensé que la Autenticación de Windows suplantaba automáticamente al usuario actual. ¿Cómo puedo solucionar esto sin tener que codificar una cuenta de "servicio" en el web.config?
+1 respuesta sólida. – JonH
Estás en lo correcto. Terminé usando ' ' en web.config y '((WindowsIdentity) HttpContext.Current.User.Identity) .Impersonate()' para la única referencia a SSRS y que me suplantó correctamente . –