Compartir a través de


Integración de Reporting Services mediante SOAP: aplicación web

Puede tener acceso a la funcionalidad completa del servidor de informes a través de la API SOAP de Reporting Services. Dado que es un servicio web, se puede tener acceso con facilidad a esta API para proporcionar características de informes de empresa para aplicaciones empresariales personalizadas. Para tener acceso al servicio web del servidor de informes desde una aplicación web, se usa casi el mismo proceso que en el acceso a la API SOAP desde una aplicación para Microsoft Windows. Con Microsoft .NET Framework, puede generar una clase de proxy que exponga las propiedades y los métodos del servicio web del servidor de informes. A continuación, puede usar una infraestructura y herramientas conocidas para crear aplicaciones empresariales en la tecnología de Reporting Services.

Se accede fácilmente a la funcionalidad de administración de informes de Reporting Services desde una aplicación web o desde una aplicación de Windows. Desde una aplicación web, puede agregar y quitar los elementos de la base de datos del servidor de informes, establecer la seguridad de los elementos, modificar los elementos de la base de datos del servidor de informes, administrar la programación y la entrega, etcétera.

Habilitación de la suplantación

El primer paso para configurar una aplicación web es habilitar la suplantación desde el cliente de servicios web. Con la suplantación, las aplicaciones de ASP.NET se pueden ejecutar con la identidad del cliente en cuyo nombre funcionan. ASP.NET se basa en Microsoft Internet Information Services (IIS) para autenticar al usuario y pasar un token autenticado a la aplicación de ASP.NET o, si no se puede autenticar al usuario, pasar un token sin autenticar. En cualquier caso, la aplicación de ASP.NET suplanta al token que se reciba, si está habilitada la suplantación. Puede habilitar la suplantación en el cliente modificando el archivo Web.config de la aplicación cliente como sigue:

<!-- Web.config file. -->  
<identity impersonate="true"/>  

Nota:

De manera predeterminada, la suplantación está deshabilitada.

Para más información sobre la suplantación de ASP.NET, vea la documentación del SDK de Microsoft .NET Framework.

Administración del servidor de informes mediante la API SOAP

También puede utilizar la aplicación web para administrar un servidor de informes y su contenido. El Administrador de informes, que se incluye con Reporting Services, es un ejemplo de una aplicación web que se compila mediante ASP.NET y la API SOAP de Reporting Services. Puede agregar la funcionalidad de administración de informes del Administrador de informes a sus aplicaciones web personalizadas. Por ejemplo, podría querer devolver una lista de los informes disponibles en la base de datos del servidor de informes y mostrarlos en un control Listbox de ASP.NET para que los usuarios puedan elegir. El código siguiente se conecta a la base de datos del servidor de informes y devuelve una lista de los elementos de la base de datos del servidor de informes. A continuación, los informes disponibles se agregan a un control Listbox, que muestra la ruta de acceso de cada informe.

También puede utilizar la aplicación web para administrar un servidor de informes y su contenido. El portal web, incluido con Reporting Services, es un ejemplo de una aplicación web que administra la mayoría de las tareas que normalmente realizaría con Reporting Services. Puede agregar la funcionalidad de administración de informes del portal web a sus aplicaciones web personalizadas. Por ejemplo, podría querer devolver una lista de los informes disponibles en la base de datos del servidor de informes y mostrarlos en un control Listbox de ASP.NET para que los usuarios puedan elegir. El código siguiente se conecta a la base de datos del servidor de informes y devuelve una lista de los elementos de la base de datos del servidor de informes. A continuación, los informes disponibles se agregan a un control Listbox, que muestra la ruta de acceso de cada informe.

Private Sub Page_Load(sender As Object, e As System.EventArgs)  
   ' Create a Web service proxy object and set credentials  
   Dim rs As New ReportingService2005()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  
   ' Return a list of catalog items in the report server database  
   Dim items As CatalogItem() = rs.ListChildren("/", True)  
  
   ' For each report, display the path of the report in a Listbox  
   Dim ci As CatalogItem  
   For Each ci In  items  
      If ci.Type = ItemTypeEnum.Report Then  
         catalogListBox.Items.Add(ci.Path)  
      End If  
   Next ci  
End Sub ' Page_Load   
private void Page_Load(object sender, System.EventArgs e)  
{  
   // Create a Web service proxy object and set credentials  
   ReportingService2005 rs = new ReportingService2005();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  
   // Return a list of catalog items in the report server database  
   CatalogItem[] items = rs.ListChildren("/", true);  
  
   // For each report, display the path of the report in a Listbox  
   foreach(CatalogItem ci in items)  
   {  
      if (ci.Type == ItemTypeEnum.Report)  
         catalogListBox.Items.Add(ci.Path);  
   }  
}  

Creación de aplicaciones con el servicio web y .NET Framework
Integración de Reporting Services en las aplicaciones
Usar la API SOAP en una aplicación para Windows