Dan*_*Dan 5 .net c# forms-authentication bids reporting-services
我已经为SSRS 2008r2编写并部署了一个自定义安全扩展,除了尝试从BIDS 2008/Visual Studio中部署报告之外,它还可以很好地工作.
安全扩展的体系结构通过多个权限处理登录,我通过在LogonUser()中创建用户会话来管理它,将其保存在数据库中,然后使用传递的UID在RS Web服务的客户端代理类中加载会话来自服务的cookie,然后重写身份验证票证以包含会话UID以及当前用户的用户角色.然后,可以在自定义授权扩展中使用这些值来管理SSRS操作和对象的用户权限.
我遇到的问题是,从BIDS部署报告时它不起作用.它直接访问服务,因此不需要服务代理类.我已经尝试在HTTP上下文中处理后验证事件,但是由于RS服务没有持久存在会话cookie,因此我无法访问会话值.
那我错过了什么?是否有另一种控制用户角色和权限的方法,不需要在任何地方硬编码用户名?就像我说的那样,可以使用多个权限进行登录,因此无法通过用户名来管理权限(并且想到它会让我感到畏缩).
我想到的一个可能的解决方案是为BIDS编写扩展或插件,它本质上充当了Web服务的代理,这将允许我更好地控制登录过程,但我不知道这是否可行(谷歌没有帮助. ..)
任何帮助都将被感激地接受!
好吧,我放弃了寻找优雅的解决方案,所以我走上了阻力最小的道路,并遵循了我收集到的 SSRS 指南,即拥有一个“主”帐户,我将指定该帐户用于报告部署和订阅。该帐户需要硬编码到设置文件中或从设置文件中提取,我不确定是否还有其他方法。干杯。
更新:我已经沿着这条路走了,效果很好。如果用户通过 Web 前端登录,他们可以在那里部署报告,但如果他们想从开发环境 (BIDS) 进行部署,则需要在登录对话框显示时使用主帐户登录。我已将部署帐户限制为仅限此特定用途。