Reporting Services SOAP API を使用して、レポート サーバーのすべての機能にアクセスできます。 これは Web サービスであるため、SOAP API に簡単にアクセスして、カスタム ビジネス アプリケーションにエンタープライズ レポート機能を提供できます。 レポート サーバー Web サービスには、Microsoft Windows アプリケーションから SOAP API にアクセスするのとほぼ同じ方法で Web アプリケーションからアクセスします。 Microsoft .NET Framework を使用すると、レポート サーバー Web サービスのプロパティとメソッドを公開するプロキシ クラスを生成できます。これにより、使い慣れたインフラストラクチャとツールを使用して、Reporting Services テクノロジでビジネス アプリケーションを構築できます。
Reporting Services レポート管理機能は、Windows アプリケーションと同じように Web アプリケーションから簡単にアクセスできます。 Web アプリケーションでは、レポート サーバー データベースのアイテムの追加と削除、アイテムのセキュリティの設定、レポート サーバー データベースアイテムの変更、スケジュールと配信の管理などを行うことができます。
偽装の有効化
Web アプリケーションを構成する最初の手順は、Web サービス クライアントからの偽装を有効にすることです。 偽装を使用すると、ASP.NET アプリケーションは、クライアントが動作しているクライアントの ID で実行できます。 ASP.NET は、Microsoft インターネット インフォメーション サービス (IIS) に依存してユーザーを認証し、認証されたトークンを ASP.NET アプリケーションに渡すか、ユーザーを認証できない場合は認証されていないトークンを渡します。 いずれの場合も、ASP.NET アプリケーションは、偽装が有効になっている場合に受信したトークンを偽装します。 クライアント アプリケーションの Web.config ファイルを次のように変更することで、クライアントで偽装を有効にすることができます。
<!-- Web.config file. -->
<identity impersonate="true"/>
注
偽装は既定で無効になっています。
ASP.NET 偽装の詳細については、Microsoft .NET Framework SDK のドキュメントを参照してください。
SOAP API を使用したレポート サーバーの管理
Web アプリケーションを使用して、レポート サーバーとその内容を管理することもできます。 Reporting Services に含まれるレポート マネージャーは、ASP.NET と Reporting Services SOAP API を使用して完全に構築された Web アプリケーションの例です。 レポート マネージャーのレポート管理機能をカスタム Web アプリケーションに追加できます。 たとえば、レポート サーバー データベースで使用可能なレポートの一覧を返し、ユーザーが選択できる ASP.NET 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 をアプリケーションに統合する
レポート マネージャー (SSRS ネイティブ モード)
Windows アプリケーションでの SOAP API の使用