我正在尝试为SQL Reporting Server 2012的实例实现自定义安全扩展,但遇到了一些麻烦。此扩展将挂钩到使用Forms身份验证的现有应用程序。
我已经实现了相应的必需接口(IAuthenticationExtension
和IAuthorizationExtension
),据我所知,已经相应地更改了配置文件(根据MSDN的说明) 。此外,我已将程序集复制到报表服务器(同时复制到ReportServer和ReportManager的bin目录)。
我得到的错误是:
library!ReportServer_0-4!44c!11/20/2015-15:41:12:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: Could not load Authentication extension, Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error. ;
我已经验证恢复到报表服务器的默认设置(从而将身份验证模式更改回Windows
)有效,因此安装软件没有任何问题。我还在ServerFault上阅读了此question ,但如果我不必这样做,我真的不想重建SSRS。
此时,我并没有尝试做任何奇特的事情 - 我只是想确保我的扩展程序正确加载。
感谢您的帮助。
答案 0 :(得分:1)
来自MSDN:
实际上,部署自定义身份验证扩展需要多个步骤,包括复制程序集和应用程序文件,修改配置文件和测试。
听起来您修改了报表服务器配置,但错误似乎表明报表服务器上没有自定义身份验证程序集 - 这是否已安装在服务器上?
答案 1 :(得分:1)
rsreportserver.config
中设置自定义扩展程序,为Forms
元素的Name
属性指定Extension
(如果您正在执行表单身份验证)。这是在Extensions
父元素下
例如,
<Authentication>
<Extension Name="Forms" Type="<TypeName>,<AssemblyName>"/>
</Authentication>
我猜测,因为SSRS加载特定的HTTP模块来处理各种形式的身份验证(例如Windows,Forms,Passport等),它在添加自定义扩展时会查找其中一个模块的名称。