Использование API-интерфейса SOAP в веб-приложении
С помощью API-интерфейса SOAP служб Reporting Services можно получить доступ ко всем функциональным возможностям сервера отчетов. Поскольку API-интерфейс SOAP является веб-службой, к нему легко получить доступ, чтобы реализовать для пользовательских бизнес-приложений функции создания отчетов в масштабе предприятия. Доступ к веб-службе сервера отчетов из веб-приложения осуществляется во многом аналогично доступу к API-интерфейсу SOAP из приложения Microsoft Windows. С помощью платформы Microsoft.NET Framework можно создать класс-посредник, который делает доступными свойства и методы веб-службы сервера отчетов и позволяет воспользоваться привычной инфраструктурой и программными средствами для построения бизнес-приложений на основе технологии служб Reporting Services.
Функции служб Reporting Services по управлению отчетами доступны из веб-приложения так же легко, как из приложения Windows. Из веб-приложения можно добавлять элементы в базу данных сервера отчетов и удалять из нее элементы, задавать параметры безопасности элемента, изменять элементы базы данных сервера отчетов, управлять планированием и доставкой, а также выполнять другие действия.
Включение олицетворения
Первым шагом в настройке веб-приложения является включение олицетворения со стороны клиента веб-службы. Олицетворение позволяет приложениям ASP.NET выполняться с удостоверением клиента, от имени которого они работают. ASP.NET с помощью служб Microsoft IIS проверяет подлинность пользователя и передает в приложение ASP.NET проверенный маркер или (если не удалось проверить подлинность пользователя) непроверенный маркер. Если включено олицетворение, то приложение ASP.NET в любом случае выполняет олицетворение полученного маркера. Можно включить олицетворение на клиенте, изменив файл Web.config клиентского приложения следующим образом:
<!-- Web.config file. --><identity impersonate="true"/>
Примечание |
|---|
По умолчанию олицетворение отключено. |
Дополнительные сведения об олицетворении ASP.NET см. в документации по пакету SDK для Microsoft.NET Framework.
Управление сервером отчетов с помощью API-интерфейса SOAP
В веб-приложении также можно управлять сервером отчетов и его содержимым. Диспетчер отчетов, входящий в состав служб Reporting Services, служит примером веб-приложения, которое целиком построено с помощью ASP.NET и API-интерфейса SOAP служб Reporting Services. Можно добавить функции управления отчетами, доступные в диспетчере отчетов, в пользовательские веб-приложения. Например, может понадобиться вернуть список отчетов, доступных в базе данных сервера отчетов, и вывести их в элементе управления ASP.NETListbox, чтобы пользователи могли выбрать отчет. В следующем коде устанавливается соединение с базой данных сервера отчетов и возвращается список элементов в базе данных сервера отчетов. Затем доступные отчеты добавляются в элемент управления «Список», в котором отображается путь к каждому отчету.
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 ciEnd 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); }}
Примечание