兩件事;首先是我在最後一行不斷收到401例外。我曾認爲重新使用該會話將使我不僅不必重新發送憑證,而且還允許我通過URL訪問報告。它既不...我可以使用從SOAP API返回的SessionID並將其用於對SSRS的URL訪問調用嗎?
其次,如果我有它在用戶的瀏覽器中顯示它,我該怎麼做response
?
這是我有這麼遠,但我不確定哪裏去這個從這裏....
var rs = new ReportExecutionService.ReportExecutionService();
rs.Credentials = new System.Net.NetworkCredential("UserID", "Pswd", "myDomain");
var execInfo = rs.LoadReport("/Nav Reports/OpenSalesOrderByCustomer", null);
var format = "HTML4";
string requestUri = string.Format(
@"https://reports.myServer.com/ReportServer/?{0}&rs:SessionId={1}&rs:Format={2}",
execInfo.ReportPath,
execInfo.ExecutionID,
format
);
WebRequest request = WebRequest.Create(requestUri);
request.UseDefaultCredentials = false;
request.Credentials = new System.Net.NetworkCredential("UserID", "Pswd", "myDomain");
var response = request.GetResponse();
背景信息 - >
我試圖建立遠程報告與處理SSRS在我的asp.net web表單應用程序。我只是簡單地使用報表查看器控件,但它看起來很醜,並且不被我們的用戶羣所接受。 URL訪問返回一個更好看和格式化的報告,是可以接受的,但我必須通過安全證書。我會使用SOAP API,除了它會返回一個非風格的html blob,並且還會刪除我們想要使用的工具欄功能。
所以,我似乎還沒有找到一種方法來使用SOAP API來驗證會話,然後以某種方式使用它來使用URL訪問。
感謝您的回覆,我很感激。但是,我無法真正地做你提出的建議,因爲我(A)試圖將它作爲HTML返回,並且(B)我希望能夠訪問導出和打印的工具欄。 – 2014-10-16 18:12:53
構建您自己的工具欄並從服務器更改您請求的類型 – 2014-10-16 18:53:12
您是說不可能做我想問的問題,或者您認爲從頭開始重建它更簡單嗎? – 2014-10-16 18:56:55