【发布时间】:2012-02-23 22:52:55
【问题描述】:
我已经为 SSRS 2008r2 编写并部署了一个自定义安全扩展,除了尝试从 BIDS 2008/Visual Studio 中部署报告之外,它还能很好地工作。
安全扩展的体系结构通过多个权限处理登录,我通过在 LogonUser() 中创建用户会话、将其保存在数据库中然后使用客户端代理类加载 RS Web 服务的会话来管理它通过 cookie 从服务传递的 UID,然后重写身份验证票证以包含会话 UID 以及当前用户的用户角色。然后可以在自定义授权扩展中使用这些值来管理用户对 SSRS 操作和对象的权限。
我遇到的问题是从 BIDS 部署报告时它不起作用。它直接访问服务,因此不需要服务代理类。我已经尝试在 HTTP 上下文中处理身份验证后事件,但是会话 cookie 没有被 RS 服务持久化,因此我无法访问会话值。
那么我错过了什么?是否有另一种控制用户角色和权限的方法不需要在任何地方硬编码用户名?就像我说的,可以使用多个权限进行登录,因此仅通过用户名管理权限是不可能的(想到它让我畏缩)。
我想到的一个可能的解决方案是为 BIDS 编写一个扩展程序或插件,它本质上充当 Web 服务的代理,这将使我能够更好地控制登录过程,但我不知道这是否可能(谷歌是没有帮助...)
我们将不胜感激地接受任何帮助!
【问题讨论】:
-
你有没有得到完整源代码的解决方案?
标签: c# .net reporting-services forms-authentication bids