Configuré SSRS en mi servidor local y usé BIDS para crear un par de informes sobre ellos. Acceden a los datos del mismo servidor SQL donde se implementa el SSRS, y cuando los obtengo de antemano, funcionan bien. Luego los implementé en mi servidor local SSRS y accedí a ellos a través de la interfaz web de ReportManager. De nuevo funcionaron muy bien. Finalmente, los implementé en el SSRS de mi proveedor de hosting. El mismo trato; buena conectividad de datos y se ve muy bien en el ReportManager.Uso de SSRS con ASP.Net ReportViewer
La primera vez que accedo a ellos a través del ReportManager en cualquiera de los sistemas, exige mi nombre de usuario y contraseña, que en mi computadora portátil es solo el inicio de mi cuenta y mi contraseña. Para mi proveedor de hosting es el inicio de mi cuenta para ellos.
Mi problema es cuando trato de mostrar un informe usando el control ReportViewer en ASP.Net. Muy a menudo, cuando intenta renderizar, obtengo un "Inicio de sesión incorrecto" o "401: no autorizado" en lugar de mi informe. Después de mucha lectura y reflexión, creo que el problema es que debo iniciar sesión no en el servidor SQL, sino en el sitio web (servicio web?) Donde están expuestos mis informes. En este momento, si no proporciono ninguna credencial, puedo obtener mis informes locales en ReportViewer (generalmente). Sin embargo, cuando despliegue los informes en un servidor remoto, esto ya no funciona.
Después de investigar un poco, creé una clase que implementa IReportServerCredentials e intenté usarla para pasar el nombre de usuario y la contraseña, pero parece que esto no funciona. Y me estaba confundiendo si se suponía que estas credenciales fueran para la fuente de datos o para el servicio web.
Si alguien puede darme una pista sobre cómo hacer que ReportViewer inicie sesión en el servicio web de SSRS, lo agradecería mucho.
De hecho, recibí un error así cuando lo implementé en otra ubicación de prueba, diciendo que la cuenta NT que estaba usando no tenía los privilegios para realizar esa acción. Entender la suplantación y en qué cuenta se ejecutan mis aplicaciones es algo en lo que necesito centrarme más. Al final, pude hacer que esto funcionara al agregar un rol para "BUILTIN \ Users" de "Navegador". Funciona, pero no estoy loco porque creo que básicamente significa que el informe no está bloqueado en absoluto. Continuaré buscando las respuestas que recibo aquí. –
Al final, finalmente lo descubrí examinando la clase de credenciales que construí con más cuidado, comparándola con el código de muestra que sabía que funcionaba. Resultó que estaba devolviendo "True" de mi método GetFormsCredentials(). Como nunca tuve la intención de usar la Autenticación de formularios, debería haber devuelto "False"."Todos los parámetros" out "de ese método estaban siendo NULL, por lo que la autenticación nunca se realizó correctamente, y no me di cuenta. –
Impresionante. Nos encontramos con los mismos problemas cuando intentábamos integrar SSRS con nuestro aplicación web. Al final pudimos obtener los permisos correctos, pero fue doloroso. – jvilalta