Condividi tramite


Utilizzo dell'API SOAP in un'applicazione Web

È possibile accedere alle funzionalità complete del server di report tramite l'API SOAP di Reporting Services. L'API SOAP è un servizio Web e, in quanto tale, è possibile accedervi in modo semplice per fornire caratteristiche di creazione di report aziendali alle applicazioni aziendali personalizzate. È possibile accedere al servizio Web ReportServer da un'applicazione Web nello stesso modo in cui si accede all'API SOAP da un'applicazione Microsoft Windows. Utilizzando Microsoft .NET Framework, è possibile generare una classe proxy che espone le proprietà e i metodi del servizio Web ReportServer e consente di utilizzare un'infrastruttura e strumenti familiari per compilare applicazioni aziendali in Reporting Services.

È possibile accedere alla funzionalità di gestione dei report di Reporting Services con la stessa facilità da un'applicazione Web o da un'applicazione Windows. Da un'applicazione Web, è possibile aggiungere e rimuovere gli elementi al e dal database del server di report, impostare la sicurezza degli elementi, modificare gli elementi del database del server di report, gestire le pianificazione e il recapito e altro ancora.

Abilitazione della rappresentazione

Il primo passaggio per la configurazione dell'applicazione Web consiste nell'attivare la rappresentazione dal client del servizio Web. Con la rappresentazione, le applicazioni ASP.NET possono venire eseguite con l'identità del client per il quale operano. ASP.NET si basa su Microsoft Internet Information Services (IIS) per autenticare l'utente e passare un token autenticato all'applicazione ASP.NET o, nel caso in cui non sia possibile autenticare l'utente, passare un token non autenticato. In entrambi i casi, l'applicazione ASP.NET rappresenta il token ricevuto, se la rappresentazione è abilitata. È possibile abilitare la rappresentazione nel client modificando il file Web.config dell'applicazione client come indicato di seguito:

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

Nota

Per impostazione predefinita, la rappresentazione è disabilitata.

Per ulteriori informazioni sulla rappresentazione in ASP.NET, vedere la documentazione di Microsoft .NET Framework SDK.

Gestione del server di report tramite l'API SOAP

È inoltre possibile utilizzare l'applicazione Web per gestire un server di report e i relativi contenuti. Gestione report, disponibile con Reporting Services, è un esempio di applicazione Web compilata completamente utilizzando ASP.NET e l'API SOAP di Reporting Services. È possibile aggiungere le funzionalità di Gestione report alle applicazioni Web personalizzate. È ad esempio possibile fare in modo che venga restituito un elenco di report disponibili nel database del server di report e visualizzarli in un controllo ListboxASP.NET per consentire agli utenti di scegliere i report dall'elenco. Nel codice seguente viene eseguita la connessione al database del server di report e viene restituito un elenco di elementi disponibili nel database del server di report. I report disponibili vengono aggiunti quindi a un controllo ListBox, in cui viene visualizzato il percorso di ogni report.

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);
   }
}