C# 如何限制SSRS中单个报告的下载选项?

C# 如何限制SSRS中单个报告的下载选项?,c#,reporting-services,C#,Reporting Services,询问如何限制整个服务器。我只想写一份报告。我发现了一个代码片段,但它没有提供任何关于如何实现的线索: foreach (RenderingExtension extension in this.reportViewer.LocalReport.ListRenderingExtensions()) { if (extension.Name == "PDF") { ((Extension)(extension.GetType().GetField("m_serverExte

询问如何限制整个服务器。我只想写一份报告。我发现了一个代码片段,但它没有提供任何关于如何实现的线索:

 foreach (RenderingExtension extension in this.reportViewer.LocalReport.ListRenderingExtensions()) {
if (extension.Name == "PDF") {            
((Extension)(extension.GetType().GetField("m_serverExtension", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(extension))).Visible = false;
}
我看不出如何使报告在加载时引用此代码。有人知道我应该如何让报告执行此代码吗

编辑:顺便说一下,报告访问是通过SSRS报告管理器web应用程序进行的。我们主要是喜欢这个产品,所以不考虑重新发明轮子来实现一个黑客,以产生本质上是“好”的特性。 报告的可用呈现选项在报告级别是不可控制的,这仍然让人有点困惑。呵呵。

顺便提一下,我发现上面的代码有点清晰。事实证明,我们讨论的是使用reportviewer组件来限制导出选项。显然,这需要一个肮脏的,肮脏的黑客,而且这不是我们想要如何运行我们的报告功能

因此,除非在未来两周内有人有比这更好的想法,否则我将把它作为答案,基本上概括为:

您只能在某些条件下限制这样的功能,即使您这样做也绝不容易


这似乎是SSR更广泛适用性的一个明显失败,因为我们有需要Excel导出功能的用户和只需要PDF的用户。哦,好吧。

您还没有真正描述如何调用报表-您是否创建了某种应用程序?您实际使用的是报表查看器控件吗

您可以使用报告URL生成特定格式的报告,并包括rs:format参数,例如

上面的URL以PDF格式生成报告。您还可以使用URL隐藏报表工具栏等。因此,您可以在应用程序中创建这些URL作为链接,可能只使用rs:Command=Render作为“查看报表”链接,也可能使用包含rs:Format=PDF作为“导出为PDF”链接的链接

更多信息。

这有关系吗


一旦他们下载了数据并将其带离现场,您仍然会丢失数据。

不幸的是,访问是通过捆绑的“报表管理器”服务器进行的。在此基础上,您可以为每个报告配置可用选项,也可以不配置任何选项。谢谢你的努力。