Partager via


Utilisation de l'API SOAP dans une 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 du 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 et vous permet d'utiliser une infrastructure et des outils familiers pour générer des applications de gestion basées sur la technologie Reporting Services.

Les fonctionnalités de gestion de rapports Reporting Services sont tout aussi faciles d'accès à partir d'une application Web qu'à partir 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.

Activation de 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é, les applications ASP.NET peuvent s'exécuter avec l'identité du client au nom duquel elles s'exécutent. 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"/>

[!REMARQUE]

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 Kit de développement Microsoft.NET Framework SDK.

Gestion du 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 complètement créée à l'aide de ASP.NET et de l'API SOAP de 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 renvoyer la liste des rapports disponibles dans la base de données du serveur de rapports afin de les afficher dans un contrôle ASP.NETListbox 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);
   }
}