0 Вопрос: используя VB.net, как передать учетные данные на сервер отчетов ssrs?

вопрос создан в Wed, May 8, 2019 12:00 AM

Я пытаюсь передать учетные данные на сервер 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. с помощью веб-интерфейса сервера отчетов добавление разрешений для папок и отчетов.

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

    
1
  1. Я выяснил, что SSRS использует проверку подлинности NTLM типа 2 для учетных записей активного каталога и поддерживает 56-разрядную & 128-битное шифрование. Сервер работает под управлением Windows 2008r2, если это имеет значение.
    2019-05-09 17: 13: 18Z
0 ответов                              0                         
источник размещен Вот
Другие вопросы