Intégrer Reporting Services à l’aide de SOAP - Application web
Vous pouvez accéder aux fonctionnalités complètes du serveur de rapports via l'API SOAP de Reporting Services. Étant donné qu'il s'agit d'un service Web, l'API SOAP est facilement accessible afin de fournir des fonctionnalités de création de rapports d'entreprise à vos applications de gestion personnalisées. Vous accédez au service Web Report Server à partir d'une application Web à peu près de la même manière que vous accédez à l'API SOAP à partir d'une application Microsoft Windows. À l’aide de Microsoft .NET Framework, vous pouvez générer une classe proxy qui expose les propriétés et méthodes du service Web Report Server. Vous pouvez ensuite utiliser une infrastructure et des outils familiers pour créer des applications métier sur la technologie Reporting Services.
La fonctionnalité de gestion des rapports Reporting Services est facilement accessible à partir d’une application web ou d’une application Windows. À partir d'une application Web, vous pouvez ajouter et supprimer des éléments dans la base de données du serveur de rapports, définir la sécurité des éléments, modifier les éléments de la base de données du serveur de rapports, gérer la planification et la remise, etc.
Activer l’emprunt d’identité
La première étape de la configuration de votre application Web consiste à activer l'emprunt d'identité à partir du client de service Web. Avec l’emprunt d’identité, ASP.NET applications peuvent s’exécuter avec l’identité du client au nom duquel elles fonctionnent. ASP.NET compte sur les services Internet (IIS) de Microsoft pour authentifier l'utilisateur et passer soit un jeton authentifié à l'application ASP.NET, soit un jeton non authentifié en cas d'incapacité à authentifier l'utilisateur. Dans les deux cas, l'application ASP.NET emprunte l'identité de n'importe quel jeton reçu si l'emprunt d'identité est activé. Vous pouvez activer l'emprunt d'identité sur le client, en modifiant le fichier Web.config de l'application cliente comme suit :
<!-- Web.config file. -->
<identity impersonate="true"/>
Notes
L'emprunt d'identité est désactivé par défaut.
Pour plus d’informations sur l’emprunt d’identité ASP.NET, consultez la documentation du SDK Microsoft .NET Framework.
Gérer le serveur de rapports à l’aide de l’API SOAP
Vous pouvez également utiliser votre application Web pour gérer un serveur de rapports et son contenu. Le Gestionnaire de rapports, inclus dans Reporting Services, est un exemple d’application web générée à l’aide de ASP.NET et de l’API SOAP Reporting Services. Vous pouvez ajouter les fonctionnalités de gestion de rapports du Gestionnaire de rapports à vos applications Web personnalisées. Par exemple, vous pouvez souhaiter retourner la liste des rapports disponibles dans la base de données du serveur de rapports afin de les afficher dans un contrôle ASP.NET Listbox pour permettre à vos utilisateurs d’en choisir un. Le code suivant permet de se connecter à la base de données du serveur de rapports et de retourner la liste des éléments contenus dans la base de données du serveur de rapports. Les rapports disponibles sont alors ajoutés à un contrôle ListBox, lequel affiche le chemin d'accès de chaque rapport.
Vous pouvez également utiliser votre application Web pour gérer un serveur de rapports et son contenu. Le portail web, inclus avec Reporting Services, est un exemple d’application web qui gère la plupart des tâches que vous effectuez généralement à l’aide de Reporting Services. Vous pouvez ajouter les fonctionnalités de gestion de rapports du portail web à vos applications web personnalisées. Par exemple, vous pouvez souhaiter retourner la liste des rapports disponibles dans la base de données du serveur de rapports afin de les afficher dans un contrôle ASP.NET Listbox pour permettre à vos utilisateurs d’en choisir un. Le code suivant permet de se connecter à la base de données du serveur de rapports et de retourner la liste des éléments contenus dans la base de données du serveur de rapports. Les rapports disponibles sont alors ajoutés à un contrôle ListBox, lequel affiche le chemin d'accès de chaque rapport.
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);
}
}