面向公共语言运行时(CLR)的每个应用程序都必须与 CLR 安全系统交互。 当此类应用程序运行时,CLR 会自动评估并为其提供一组权限。 根据应用程序接收的权限,它会继续运行或生成安全异常。 特定报表服务器的安全策略配置文件中的本地安全设置和策略定义程序集接收的代码权限。
在请求权限之前,需要注意扩展代码计划使用的资源和保护作,并且还需要知道哪些权限保护这些资源和作。 此外,还需要跟踪由扩展组件调用的任何类库方法访问的任何资源。 有关详细信息,请参阅 .NET Framework 开发人员指南中的“请求权限”。
部署到报表服务器的扩展必须作为完全信任运行,这意味着扩展需要成为授予 FullTrust 权限集的代码组的一部分。 这也意味着扩展可能有权访问通过 CLR 提供的某些服务器资源和作,具体取决于要对特定报表进行身份验证的用户。 有关代码组和扩展的详细信息,请参阅 Reporting Services 中的代码访问安全性。
重要
Reporting Services 对其所有扩展强制实施 .NET Framework 安全性。
以下条件适用于 Reporting Services 中数据处理、传递、呈现和安全扩展插件的部署:
只有本地管理员有权部署扩展。
只有具有适当读/写权限的用户才能更改正在扩展的 Reporting Services 组件的配置文件。
只有特权用户有权编辑安全策略文件,并为扩展启用代码访问安全性。
有关 Reporting Services 中的代码访问安全性的详细信息,请参阅安全开发(Reporting Services)。
有关 .NET Framework 安全性的详细信息,请参阅 .NET Framework 开发人员指南中的“.NET Framework 安全性”。
扩展程序集的初始化
当扩展首先被报表服务器加载到内存中时,它们使用服务帐户凭据,因为某些扩展程序集需要特定权限来访问系统资源、读取配置文件以及加载其他依赖程序集。 但是,加载并初始化程序集后,对扩展程序集的所有后续调用都使用当前登录的用户帐户的凭据。