Fran Diaz

Reporting Services, Business Intelligence, tecnologías Microsoft y otros

Email Notifications

Recent Posts

Tags

News

Community

Comunidades

  • Foro MSDN Español: Colaborador
  • CartujaDotNet

Webs Amigas

Archives

Servicios Web Reporting Services: Añadir un datasource a informe

En el anterior post escribí como añadir un report en el servidor de reports. Ahora voy a explicar como añadirle un datasource.

Primero creamos un objeto de definición del datasource (DataSourceDefinition):

// Definición para el datasource.
            DataSourceDefinition definition = new DataSourceDefinition();

            // 1. Nombre y descripción
            // 2. Tipo de conexión y cadena de conexión.
            definition.ConnectString = "Cadena de conexión";
            definition.Extension = "SQL";

            // 3. Tipo de conexion. Llegao a este paso, podemos configurar 4 tipos para la seguridad.

            // 3.1. Pedir Credenciales.
            definition.CredentialRetrieval = CredentialRetrievalEnum.Prompt;
            definition.Prompt = "Texto del prompt";

            // 3.2 Credenciales almacenadas.
            //3.2.1
            definition.CredentialRetrieval = CredentialRetrievalEnum.Store;

            //3.2.2 -- Usuario.
            definition.UserName = "Nombre de usuario";
            //3.2.3 -- Password
            definition.Password = "Password";
            //3.2.4 -- Credenciales de windows para la conexión.
            definition.WindowsCredentials = "True o false según proceda";
            // 3.2.5 -- Suplantar al usuario.
            definition.ImpersonateUserSpecified = "True o False";

            // 3.3 Seguridad Integrada          
           definition.CredentialRetrieval = CredentialRetrievalEnum.Integrated;

            // 3.4 Sin credenciales
            definition.CredentialRetrieval = CredentialRetrievalEnum.None;

            // 3.5 Habilitar
            definition.Enabled = true;
            definition.EnabledSpecified = true;

            try
            {
                Configuration.rs.CreateDataSource("/Nombre del report", "/Ruta del report", false, definition, null);
                // Nótese que se deja una barra delante del nombre del report y de la ruta de este, esto es así para
                // especificar bien la ruta donde agregar el report.
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);               
            }

Espero que os sirva ;),

Un Saludo!

Posted: 8/7/2010 23:06 por Fran Díaz | con 1 comment(s) |
Comparte este post:

Comentarios

SetDataSourceCredentials con autenticación de Windows Integrada ha opinado:

Hola Fran

Me puedes colaborar para resolver el siguiente problema. Tengo un servidor de informes  servidorx/ReportServer, en el cual  tengo alojado un informe (pruebax.rdl).

El informe pruebax tiene una conexión incrustada de tipo SQL Server y la cadena de conexión es una expresión asignada a través de un ReportParameter.

El origen de datos tiene básicamente 3 opciones de credenciales.

1. Seguridad integrada de windows

2. Usar un nombre de usuario y contraseña

3. Pedir credenciales

El informe como tal lo puedo visualizar bien, cambiando las credenciales mencionadas, en el ReportViewer del BIDS mientras diseño mi informe.

Ahora el problema es desde una aplicación VB.NET cuando quiero visualizar este informe, con la opción de seguridad integrada o con un usuario y contraseña del SQL, ya que en le programa se pueden autenticar con seguridad integrada de Windows a través de un dominio o con SQL, y el informe debería estar en capacidad de procesarse por un lado o por el otro.

Pero la lógica que tengo diseñada (GetDataSources) obtiene los origenes de datos, y la única forma de asignarle las credenciales es a través de la clase DataSourceCredentials en la cual se debe especificar una usuario y clave, quedando descartado la autenticación windows.

Que solución puedo aplicar en este caso?

Muchas gracias

# September 4, 2010 1:41 AM