我已经在SSRS中成功实现了表单身份验证,因此现在使用普通的asp.net成员资格框架,使用我网站上的角色和用户。
我可以登录门户并运行任何报告,只要我从原始应用程序中获得正确的角色即可。一切都好。
但是,如果我创建订阅,那么,当订阅运行时,我不会收到我的报告,而是在日志中显示此消息:
subscription!WindowsService_0!161a0!10/21/2009-22:42:05:: i INFO:
Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException:
An internal error occurred on the report server. See the error log for more details. --->
System.Configuration.Provider.ProviderException:
The Role Manager feature has not been enabled.
at System.Web.Security.Roles.EnsureEnabled()
at System.Web.Security.Roles.GetRolesForUser(String username)
at MyApp.ReportServer.Security.Module.Authorization.CheckAccess(String userName, IntPtr userToken, Byte[] secDesc, ReportOperation requiredOperation)
at Microsoft.ReportingServices.Library.Security.CheckAccess(ItemType catItemType, Byte[] secDesc, ReportOperation rptOper, String reportPath)
at Microsoft.ReportingServices.Library.SecurityRequirements.CheckAccess(ItemType itemType, Byte[] securityDescriptor, String itemPath)
at Microsoft.ReportingServices.Library.DefinitionLoader.GetParameterDefinition(CatalogItemContext itemContext, String historyId, Boolean forRendering, SecurityRequirements requirements)
at Microsoft.ReportingServices.Library.RSService.GetReportParameters(ClientRequest session, CatalogItemContext reportContext, Boolean forRendering)
at Microsoft.ReportingServices.Library.RSServiceDataProvider.GetParameters(ClientRequest session, CatalogItemContext reportContext)
at Microsoft.ReportingServices.Library.RenderForNewSession.GetReportParameters()
at Microsoft.ReportingServices.Library.RenderForNewSession.GetReportMetadata()
at Microsoft.ReportingServices.Library.RenderForNewSession.get_ExecuteExistingSnapshot()
at Microsoft.ReportingServices.Library.RenderForNewSession.GetExecutionStrategy()
at Microsoft.ReportingServices.Library.ReportExecutionBase.InternalExecuteReport()
at Microsoft.ReportingServices.Library.ReportExecutionBase.Execute()
at Microsoft.ReportingServices.Diagnostics.CancelablePhaseBase.ExecuteWrapper()
--- End of inner exception stack trace ---
MyApp系列是我的自定义安全扩展程序。
我在/ ReportServer目录中的web.config中设置了RoleManager和成员资格提供程序。
订阅者是否以某种方式规避了网站设置?
更新:
好的,所以我发现,当sql代理评估/触发订阅时,显然它正在运行的是在MACHINE.CONFIG中设置的任何值。
为什么它不使用web.config设置的任何线索,但直接进入machine.config?
答案 0 :(得分:1)
我不熟悉SSRS,但我使用.NET /成员资格提供程序和web / app / machine.config。
你的异常状态订阅!WindowsService_0!161a0!10/21 / 2009-22:42:05 :: 我认为这意味着订阅服务是一个Windows服务,不能在IIS中运行。这意味着它具有不同的配置文件。
http://reportserver - > IIS - > web.config(您的配置) 订阅!WindowsService - >服务 - > app.config - > machine.config中。
希望它有所帮助。