используя VB.net, как передать учетные данные на сервер отчетов ssrs? - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь передать учетные данные на сервер ssrs для загрузки отчета в формате PDF, но получаю неавторизованную ошибку 401.

У меня есть проект веб-форм vb.net, над которым я работаю, и онпытается загрузить отчет на удаленной машине SQL Server 2008 r2.Я пытаюсь загрузить отчет и загрузить его в формате PDF.Мой код должен загружать файл как поток данных, который позволяет пользователю сохранить файл.Указав браузер непосредственно на URL отчета, я могу получить PDF, но мне нужно предоставить учетные данные.Я пытаюсь избежать необходимости входить в систему, чтобы получить отчет.Код, который я использую, должен передавать учетные данные, но вместо возврата отчета я получаю 401 несанкционированную ошибку.

Dim ReportUrl As String = "http://server/ReportServer/Pages/ReportViewer.aspx?%2fReport%2fParishreport&rs:Command=Render&parameter=" & session("parameter") & "&rs:format=pdf"
Dim ReportWebResponse As HttpWebResponse
         Dim Request As HttpWebRequest = CType(WebRequest.Create(ReportUrl), HttpWebRequest)
         'Request.Credentials = CredentialCache.DefaultCredentials
         Request.Credentials = New NetworkCredential("user", "password")
         ReportWebResponse = CType(Request.GetResponse(), HttpWebResponse)
         Dim ReportResponseStream As StreamReader = New StreamReader(ReportWebResponse.GetResponseStream(), New UnicodeEncoding)
         Dim objMemoryStream As New MemoryStream(New UnicodeEncoding().GetBytes(ReportResponseStream.ReadToEnd()))
         Response.Clear()
         Response.AddHeader("Accept-Header", objMemoryStream.Length.ToString())
         Response.ContentType = "application/pdf"
         Response.OutputStream.Write(objMemoryStream.ToArray(), 0, Convert.ToInt32(objMemoryStream.Length))
         ReportResponseStream.Close()
         Response.Flush()

         Try
             Response.End()
         Catch
         End Try

Я ожидал, что браузер позволит мне сохранить PDF или отобразить PDF в браузере (Firefox, встроенный в программу просмотра PDF).Используя указанное имя пользователя и пароль, я получаю 401 несанкционированную ошибку.Используя defaultcredentials, я получаю чистый PDF с правильным количеством страниц.

Я добавил учетную запись домена на сервер отчетов: 1. с помощью студии управления SQL-сервером 2. с помощью веб-интерфейса сервера отчетов добавление разрешений для папок и отчетов.

Какой метод предоставления учетных данных серверу отчетов является предпочтительным, чтобы можно было использовать учетную запись одного домена для управления возможностью просмотра отчета пользователями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...