我想在 ASP.NET 中有一个简单的登录系统的站点。登录后,还会有指向 SSRS 中生成的报告的链接。但是每个用户都会有不同的链接,他可以看到。我想通过 Windows 身份验证检查的昵称和密码。
1)我想知道是否可以将这些信息保存在数据库以外的其他地方?
2) 如何获得与报表管理器中类似的布局?我的意思是,如何使用 ASP.NET 显示我的报告?
我是 ASP.NET 的新手(我不知道是否可以做这样的事情),所以我希望我自己说清楚。
提前致谢,
莫尼克
我想在 ASP.NET 中有一个简单的登录系统的站点。登录后,还会有指向 SSRS 中生成的报告的链接。但是每个用户都会有不同的链接,他可以看到。我想通过 Windows 身份验证检查的昵称和密码。
1)我想知道是否可以将这些信息保存在数据库以外的其他地方?
2) 如何获得与报表管理器中类似的布局?我的意思是,如何使用 ASP.NET 显示我的报告?
我是 ASP.NET 的新手(我不知道是否可以做这样的事情),所以我希望我自己说清楚。
提前致谢,
莫尼克
问题 1:你在谈论什么样的信息,给出一个编码示例或基于你的社区可以工作的结构的东西。
编辑:是的,可以将报告放在单独的位置。此外,这意味着对于每个用户,您必须在 SSRS 下创建权限,然后在您的页面中参考用户对 SSRS 的身份验证。从那里开始,您将使用 SSRS 功能。这意味着管理员需要在每个新用户身边插入用户可能看到的报告。这是一种不方便的方法,因为只提供 SSRS 地址更容易,这样您的所有用户都可以从那里工作。(但是,对于页面的外观,您无话可说。)
问题2:ASP.net 有一个reportviewer 控件,使您能够查看报表服务器上可用的特定报表。SSRS 报表查看器的大部分功能都可以在此控件中进行模拟。请注意,您在使用它时需要非常了解该控件。http://msdn.microsoft.com/en-us/library/ms251671(v=vs.110).aspx
作为旁注:
我曾经创建了一个网站,该网站的用户根据他们的用户 ID 对不同的报告、不同的参数拥有权限。我有一个由实习生 (SSO) 和外部用户组成的用户表。也有不同的角色。基于这一切,赋予了不同的权利。
报告查看器的链接使用普通报告用户而不是用户自己的身份验证,然后用户 ID 作为额外参数给出,其他参数基于。
编辑:
当您希望某些用户获得对报告的访问权限时,请创建 3 个表:用户、报告和 UserReportLink
例子:
Userid | Name
1 | user A
2 | user B
3 | user C
Reportid | Name |ReportLink
1 | report A | 'http://MyReportServer/reports/Report1.aspx'
2 | report B | 'http://MyReportServer/reports/Report2.aspx'
3 | report C | 'http://MyReportServer/reports/Report3.aspx'
4 | report D | 'http://MyReportServer/reports/Report4.aspx'
Userreportid | Userid | Reportid
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 2 | 2
5 | 2 | 3
6 | 3 | 2
7 | 3 | 3
8 | 3 | 4
然后,您的页面将包含以下报告逻辑:
=> 返回登录的用户(会话可能因为它是 asp.net)
=> 返回用户需要查看的所有报告的列表
var q = (from m in UserReportLinks
where m.Userid = this.UserId
select m).ToList();
=> 有了上述内容,您就可以为用户提供报告。
var l = new List<Report>();
foreach(var item in q)
{
var r = (from m in Reports
where m.Reportid = item.Reportid
return m).ToList();
l.Add(r);
}
//populate a control so the user can select a report
aControl.DataSource = l;
=> 最后,使用 selectedId 将报告返回到报告查看器。
=> 选择参数等...