我有一个要求,即当传递必要的输入值时,aspx页面需要在浏览器中生成并显示报表。该Web页面使用ReportViewer控件来调用远程服务器WIN12ABC中可用的.rdl文件,以生成并显示该报告。下面的代码用于此目的
rptViewer.ShowCredentialPrompts = false;
rptViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
rptViewer.ServerReport.ReportServerCredentials = new ReportCredentials("spsqlrptadmin", "AbcD123", "US");
rptViewer.ServerReport.ReportServerUrl = new Uri("http://WIN12ABC/ReportServer_ABCD1dev");
rptViewer.ServerReport.ReportPath = "/SSRSDemo/SSRSDemo";
List<ReportParameter> parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("ID_Number", "86745"));
rptViewer.ShowParameterPrompts = false;
rptViewer.ShowPromptAreaButton = false;
rptViewer.ServerReport.SetParameters(parameters);
rptViewer.ServerReport.Refresh();
我正在使用服务帐户&#34; spsqlrptadmin&#34;及其连接到报表服务器的凭据。它在报表管理器中具有系统管理员角色。如果我运行该页面,则会收到以下错误
401未经授权的错误。
但如果我使用其他帐户&#34; rvjeevirptuser&#34;报告已成功生成并显示在浏览器中,而不是上述报告。这个账户&#34; rvjeevirptuser&#34;是我的个人帐户,专门用于连接远程服务器WIN12ABC。
我刚刚在浏览器中复制了网址&#34; http://WIN12ABC/ReportServer_ABCD1dev&#34;使用服务帐户&#34; spsqlrptadmin&#34;并导航到报告(.rdl)&#34; SSRSDemo&#34;部署。我能够查看该报告。
我无法确定造成这种情况的原因&#34;未经授权&#34;使用帐户时出错&#34; spsqlrptadmin&#34;单独。我检查了ReportServer数据库中的dbo.users表,以确认给予这两个用户的权限级别。
除了UserType之外,我找不到任何区别。有关ReportServer.dbo.users表的更多信息,请参见附件图像