我有一种情况,我需要我的报表服务器或多或少可以公开访问,因为我们在ASP.NET Web应用程序中使用ReportViewer控件,用户组将访问各种报表。
这将针对SQL Server 2008标准版运行。
安全性将通过创建链接报表(每个用户一个,在运行时从我们的Web应用程序请求报表时发布)来处理,但我很难通过编程方式设置链接报表参数值。
简而言之,报表有少量保留的参数名(例如,userid和languageid)。在运行时,Web应用程序将检查用户是否有链接报表(为每个报表/用户使用唯一的链接报表名称),如果不存在,则创建一个。
这是使用SSRS SOAP API完成的,并且工作得很好。我遇到的问题是设置链接报表的报表参数。
例如,如果我以系统管理员身份登录,我只想查看报告,并完全控制报告查看器中的参数。如果我以“低”用户身份登录,我希望在链接报表中将user id参数设置为my id,并且不能将user id更改为snoop查看其他用户的报表。
这可以在报表管理器中手动完成,方法是打开链接报表的属性并设置参数默认值,然后取消选中“提示用户”框。
现在,我正尝试使用SOAP API以编程方式完成这项工作,但似乎找不到正确的方法来完成这项工作。
我在一些地方读到了CreateLinkedReport方法可以设置参数的提示,但我开始认为这只是作者们的误解。虽然此方法不接受属性[]属性,但这些属性似乎只提供报表元数据(例如链接的报表名称)。
是否需要将特殊标记与属性名称/值一起使用,以指示属性是报表参数?
任何想法都非常感谢。