1
我使用HttpWebRequest的以編程方式導出PDF格式的SSRS 2008年的報告。然而,我的問題是,我的NetworkCredentials似乎沒有工作。嘗試訪問SSRS時收到未經授權(401)錯誤。接受「未經授權(401)」錯誤的HttpWebRequest至2008年SSRS
我知道我提供的NetworkCredentials是正確的。如果我手動登錄我們的SSRS Web服務,這些是我使用的確切憑據。此外,這工作正常,只是沒有在我們的服務器上。
該報告是對我們的asp.net 4.0網站上運行。當用戶點擊「生成報告」按鈕,下面的代碼被執行(在我的二號線出現錯誤,上WebRequest.Create)嘗試連接到我的SSRS 2008:
string sTargetURL = "MY_REPORT_SERVER?/REPORT_NAME&rs:format=pdf&rs:command=render&rc:parameters=Collapsed";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sTargetURL);
req.PreAuthenticate = true;
req.Credentials = new NetworkCredential("Username", "Password", "Domain");
HttpWebResponse HttpWResp = (HttpWebResponse)req.GetResponse();
Stream fStream = HttpWResp.GetResponseStream();
byte[] fileBytes = ReadFully(fStream);
HttpWResp.Close();
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=\"" + reportName + ".pdf"\"");
System.Web.HttpContext.Current.Response.BinaryWrite(fileBytes);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();