Invoking dịch vụ Web SSRS từ WSS / RÊU thuộc họ FBA môi trường

Chúng tôi cần thiết để gọi "CreateSubscription" Các phương pháp trên một dịch vụ web SSRS được lưu trữ trong một FBA quản lý môi trường MOSS từ một phần web tùy chỉnh. Chúng tôi giữ nhận được các biến thể của:

  • 401: Chưa được kiểm chứng
  • Đối tượng di chuyển

"Đối tượng di chuyển" tin nhắn là thú vị nhất bởi vì nó đã nói rằng "đối tượng" (chúng tôi dịch vụ SSRS) muốn "di chuyển" để login.aspx. Điều này rõ ràng có nghĩa là chúng tôi đã có một số loại vấn đề xác thực.

Tôi cuối cùng đã nhận ra rằng tôi đã có đánh dấu một blog entry bởi Robert Garret mô tả làm thế nào để gọi một dịch vụ web WSS/RÊU trơn sống bên trong một môi trường FBA. Lưu ý rằng tôi không thể liên kết trực tiếp đến bài viết (như của 06/09/08) bởi vì nó muốn xác thực. Liên kết tôi cung cấp mang đến cho bạn một "bài viết tất cả" xem và bạn có thể xác định bài viết cụ thể bằng cách tìm kiếm cho "Truy cập MOSS Web dịch vụ bằng cách sử dụng hình thức dựa trên xác thực".

Đây là mã mà làm việc cho chúng tôi:

ReportingService2006 rs = null; 
// Xác thực Xác thực auth = mới Xác thực(); 
c.chỉURL = "http://URL/_vti_bin/Authentication.asmx";
c.chỉCookieContainer =
mới CookieContainer();
Kết quả LoginResult = c.chỉĐăng nhập("userid", "mật khẩu");
Nếu (kết quả.ErrorCode == LoginErrorCode.NoError) 
{
// Không có lỗi, do đó, có các tập tin cookie.
CookieCollection cookie = c.chỉCookieContainer.GetCookies(mới URI(c.chỉURL));
Cookie authCookie = cookie[kết quả.CookieName];
RS =
mới ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
mới CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Hãy thử
{
  RS.CreateSubscription(báo cáo, extSettings, desc, eventType, matchData, parameters1);
}
bắt (Ngoại lệ cũ)
{
  System.console.WriteLine(cũ.Message.ToString());
}

Tôi giải thích những điều để làm việc như thế này:

  • Một phần trang web của chúng tôi cần phải quay số dịch vụ xác thực và nói, "Hey, Tony, nó là tôi!".
  • Xác thực dịch vụ trả lời nói, "Hey, Tôi biết bạn. Làm thế nào là những đứa trẻ? Đây là một mã thông báo."
  • Chúng tôi gọi Dịch vụ SSRS và nói, "Tony đã gửi cho tôi, đây là kỷ niệm."

</kết thúc>

Đăng ký vào blog của tôi.

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *