gpt4 book ai didi

c# - 下载 SSRS 报告并保存在特定位置(C#)(未经授权)

转载 作者:行者123 更新时间:2023-11-30 13:54:40 24 4
gpt4 key购买 nike

问题

我正在尝试通过其 URL 将 SSRS 报告下载到数据缓冲区(字节数组)中,因此我可以将其保存在一个特定的文件夹中,并使用我选择的名称。如果需要,我愿意接受不同方法的建议。

问题

但是,无论我输入哪种凭据,我都会不断收到以下错误 (401) Unauthorized:

An exception of type 'System.Net.WebException' occurred in System.dll but was not handled in user code

Additional information: The remote server returned an error: (401) Unauthorized.

我正在使用此代码 (C#):

WebClient myWebClient = new WebClient();
NetworkCredential netCredential = new NetworkCredential("username", "password");
myWebClient.Credentials = netCredential;

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF"

byte[] myDataBuffer = myWebClient.DownloadData(theURL);

示例 URL(如果我只需将以下 URL 复制到我的浏览器,就可以完美地下载文件,访问没有任何问题):http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs: Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF

我的机器在一个域上,我已经尝试了这些凭据以及域和数据库 SA 帐户,但两者都出现了同样的问题。

我知道这段代码在下载 PDF 文件时有效,因为我从互联网上硬编码了一个随机 URL,并且有效,例如:“http://www.axmag.com/download/pdfurl-guide.pdf

谢谢大家在这件事上的帮助,我希望这是可能的,因为这对我的申请来说是一个非常方便的补充

最佳答案

事实证明,对于我的场景(使用默认凭证)来说就这么简单:

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF";

WebClient Client = new WebClient();
Client.UseDefaultCredentials = true;

byte[] myDataBuffer = Client.DownloadData(theURL);

上面的代码可以将任何 SSRS 报告下载为字节数组。这意味着它可以保存在指定位置,名称由您选择:

var filename = "Test.PDF";
var fileStructureLocal = "C:\\Test";
var fileStructureNetwork = "\\\\NetworkDrive\TestFolder";

var fileLocation = fileStructureNetwork + "\\" + filename;

if (System.IO.File.Exists(url) == true)
{
//DO NOTHING
}
else
{
System.IO.File.WriteAllBytes(url, myDataBuffer);
//SAVE FILE HERE
}

下一个 block 是重命名文件和指定位置的方式。我还添加了一个检查以查看它是否已经存在,如果它存在则什么都不做。

我希望这对您有所帮助,因为这是我长期以来一直努力工作的事情!

关于c# - 下载 SSRS 报告并保存在特定位置(C#)(未经授权),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40338883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com