Share via


SOAP を使用して Reporting Services を統合する - Web アプリケーション

Reporting Services SOAP API からは、レポート サーバーのすべての機能にアクセスできます。 SOAP API は Web サービスであるため、容易にアクセスし、エンタープライズ レポート機能をカスタム ビジネス アプリケーションに取り入れることができます。 Microsoft Windows アプリケーションから SOAP API にアクセスするのと同じように、Web アプリケーションからレポート サーバー Web サービスにアクセスします。 Microsoft .NET Framework を使用すると、レポート サーバー Web サービスのプロパティとメソッドを公開するプロキシ クラスを生成できます。 その後、使い慣れたインフラストラクチャとツールを使用して、Reporting Services テクノロジのビジネス アプリケーションを構築できます。

Reporting Services レポート管理機能は、Web アプリケーションまたは Windows アプリケーションから簡単にアクセスできます。 Web アプリケーションから、レポート サーバー データベースのアイテムの追加と削除、アイテム セキュリティの設定、レポート サーバー データベースのアイテムの変更、スケジューリングと配信の管理などを行うことができます。

偽装を有効にする

Web アプリケーションを構成する最初の手順は、Web サービス クライアントからの権限借用を有効にすることです。 偽装を使用すると、ASP.NET アプリケーションは、クライアントが動作しているクライアントの ID を使用して実行できます。 ASP.NET では Microsoft インターネット インフォメーション サービス (IIS) を使用してユーザーを認証し、ASP.NET アプリケーションに認証済みトークンを渡すか、ユーザーを認証できない場合は未認証トークンを渡します。 どちらの場合も、権限借用が有効であれば、ASP.NET アプリケーションで受け取ったトークンの権限を借用します。 クライアントの権限借用を有効にするには、次のようにクライアント アプリケーションの Web.config ファイルを変更します。

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

Note

既定では、権限借用は無効になっています。

ASP.NET の権限借用の詳細については、Microsoft .NET Framework SDK のドキュメントを参照してください。

SOAP API を使用してレポート サーバーを管理する

Web アプリケーションを使用してレポート サーバーとその内容を管理することもできます。 Reporting Services に含まれるレポート マネージャーは、ASP.NET と Reporting Services SOAP API を使用して構築された Web アプリケーションの例です。 レポート マネージャーのレポート管理機能はカスタム Web アプリケーションに追加できます。 たとえば、レポート サーバー データベースの利用可能なレポートの一覧を返し、ASP.NET Listbox コントロールに表示して、ユーザーが選択できるようにすることができます。 次のコードでは、レポート サーバー データベースに接続し、レポート サーバー データベースのアイテムの一覧を返します。 利用可能なレポートは Listbox コントロールに追加され、各レポートのパスが表示されます。

Web アプリケーションを使用してレポート サーバーとその内容を管理することもできます。 Reporting Services に含まれる Web ポータルは、Reporting Services を使用して通常実行するほとんどのタスクを管理する Web アプリケーションの例です。 Web ポータルのレポート管理機能はカスタム Web アプリケーションに追加できます。 たとえば、レポート サーバー データベースの利用可能なレポートの一覧を返し、ASP.NET Listbox コントロールに表示して、ユーザーが選択できるようにすることができます。 次のコードでは、レポート サーバー データベースに接続し、レポート サーバー データベースのアイテムの一覧を返します。 利用可能なレポートは Listbox コントロールに追加され、各レポートのパスが表示されます。

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

Web サービスと .NET Framework を使用してのアプリケーションの構築
アプリケーションへの Reporting Services の統合
Windows アプリケーションでの SOAP API の使用