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