尝试使用自定义身份验证扩展时SSRS 2012配置错误

时间:2015-11-20 20:59:25

标签: reporting-services ssrs-2012

我正在尝试为SQL Reporting Server 2012的实例实现自定义安全扩展,但遇到了一些麻烦。此扩展将挂钩到使用Forms身份验证的现有应用程序。

我已经实现了相应的必需接口(IAuthenticationExtensionIAuthorizationExtension),据我所知,已经相应地更改了配置文件(根据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。

此时,我并没有尝试做任何奇特的事情 - 我只是想确保我的扩展程序正确加载。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

来自MSDN

  

实际上,部署自定义身份验证扩展需要多个步骤,包括复制程序集和应用程序文件,修改配置文件和测试。

听起来您修改了报表服务器配置,但错误似乎表明报表服务器上没有自定义身份验证程序集 - 这是否已安装在服务器上?

答案 1 :(得分:1)

事实上,我发现了这个问题。确保在rsreportserver.config中设置自定义扩展程序,为Forms元素的Name属性指定Extension(如果您正在执行表单身份验证)。这是在Extensions父元素

例如,

<Authentication> <Extension Name="Forms" Type="<TypeName>,<AssemblyName>"/> </Authentication>

我猜测,因为SSRS加载特定的HTTP模块来处理各种形式的身份验证(例如Windows,Forms,Passport等),它在添加自定义扩展时会查找其中一个模块的名称。