通过 URL 访问 SSRS 报告时如何传递凭据

Tec*_*ile 5 asp.net reporting-services ssrs-2008 ssrs-2008-r2

我正在尝试使用如下所示的 URL 访问 SSRS 报告

http://MyServerIP/ReportServer?/FolderName/ReportName&Param1=ParamValue&rs:Command=Render&rs:Format=HTML4.0&rc:Toolbar=false
Run Code Online (Sandbox Code Playgroud)

当我尝试访问上面的 Url 时,系统会要求我提供我的网络凭据,从而在浏览器窗口中呈现 SSRS 报告的所有页面。

现在我想在我的 webApp 内的弹出窗口中显示这些内容。为此,我尝试发出一个 jquery 请求并获取内容,但是这样做我得到了 401 未经授权的错误。所以我想知道是否有办法在 jquery ajax get 请求中发送凭据。

作为一个转变,我尝试使用下面的 C# 代码来检索数据,但它也没有帮助,并给出了相同的 401 错误

WebClient client = new WebClient();
client.Credentials = new NetworkCredential("username", "password", "domain");
divContents.InnerText = client.DownloadString(my report path);
Run Code Online (Sandbox Code Playgroud)

我正在使用 SSRS 2008 R2,我的要求是在弹出窗口中显示所有报告页面。所以欢迎所有指向这个方向的指针。

最后添加一点,我的网络应用程序和报告可能位于也可能不在同一个域中。

谢谢,拉维

Ann*_* L. 2

我会尝试什么:

  • 创建一个新页面。在 C# 端,使用ReportExecution2005Web 服务将报告呈现为 HTML。然后将结果泵送到窗口。

  • 在弹出窗口中,可以通过 Ajax 调用新的 C# 页面(以获取 HTML)并将输出注入 jQuery 窗口,或者将页面本身作为单独的浏览器窗口弹出。

如果您需要,我可以提供一些示例代码。

ETA:我发现了一条可能有价值的信息:

这是来自HTML 设备设置页面(强调我的):

工具栏

指示是否显示或隐藏工具栏。该参数默认为 true。如果此参数的值为 false,则忽略所有剩余选项(文档结构图除外)。如果省略此参数,则会自动显示支持它的渲染格式的工具栏。

当您使用 URL 访问呈现报表时,将呈现报表查看器工具栏。工具栏不是通过 SOAP API 呈现的。但是,工具栏设备信息设置会影响使用 SOAP 渲染方法时报表的显示方式。如果在使用 SOAP 呈现为 HTML 时此参数的值为 true,则仅呈现报表的第一部分。如果该值为 false,则整个 HTML 报告将呈现为单个 HTML 页面