Compartir a través de


Usar la API SOAP en una 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 y le permita usar una infraestructura y herramientas conocidas para compilar las aplicaciones empresariales en la tecnología Reporting Services.

El acceso a la funcionalidad de administración de informes de Reporting Services se realiza con tanta facilidad desde una aplicación web como desde una aplicación para 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.

Habilitar 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 pueden ejecutarse con la identidad del cliente en cuyo el nombre operan. 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.

Administrar el 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 aplicación web que se genera completamente utilizando 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, puede que desee devolver una lista de informes disponibles en la base de datos del servidor de informes y mostrarlos en un control ASP.NET Listbox entre los que los usuarios elijan. 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);  
   }  
}  

Consulte también

Creación de aplicaciones con el servicio web y .NET Framework
Integración de Reporting Services en las aplicaciones
Administrador de informes (Modo nativo de SSRS)
Usar la API SOAP en una aplicación para Windows