0 sử dụng VB.net làm cách nào để chuyển thông tin đăng nhập đến máy chủ báo cáo ssrs?

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng chuyển thông tin đăng nhập đến máy chủ ssrs để tải báo cáo dưới dạng PDF nhưng đang gặp lỗi 401 trái phép.

Tôi có một dự án biểu mẫu web vb.net mà tôi đang làm việc và nó đang cố tải một báo cáo trên máy SQL Server 2008 r2 từ xa. Tôi đang cố tải báo cáo và tải xuống dưới dạng pdf. Mã của tôi có nghĩa vụ tải tệp dưới dạng luồng dữ liệu cho phép người dùng lưu tệp. Chỉ trình duyệt trực tiếp vào url của báo cáo, tôi có thể lấy tệp PDF, nhưng cần cung cấp thông tin đăng nhập. Tôi đang cố gắng tránh sự cần thiết phải đăng nhập để nhận báo cáo. Mã tôi đang sử dụng được cho là để vượt qua thông tin xác thực nhưng thay vì trả lại báo cáo, tôi nhận được 401 lỗi trái phép.

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

Tôi dự kiến ​​trình duyệt sẽ cho phép tôi lưu tệp PDF hoặc hiển thị pdf trong trình duyệt (Firefox tích hợp trình xem PDF). Sử dụng tên người dùng và mật khẩu được chỉ định, tôi nhận được 401 lỗi trái phép. Sử dụng defaultcredentials, tôi nhận được một tệp PDF trống với số lượng trang chính xác.

Tôi đã thêm tài khoản miền vào máy chủ báo cáo: 1. sử dụng studio quản lý máy chủ SQL 2. sử dụng giao diện web của máy chủ báo cáo thêm thư mục và quyền báo cáo.

Phương thức ưa thích để cung cấp thông tin đăng nhập cho máy chủ báo cáo sao cho có thể sử dụng một tài khoản miền duy nhất để kiểm soát khả năng người dùng xem báo cáo?

    
1
  1. Tôi đã tìm ra SSRS đang sử dụng xác thực NTLM loại 2 đối với các tài khoản thư mục hoạt động và hỗ trợ 56-bit & Mã hóa 128 bit. Máy chủ đang chạy windows 2008r2 nếu có vấn đề.
    2019-05-09 17: 13: 18Z
0 Câu trả lời                              0                         
nguồn đặt đây