Агент SQL и Web.Config. WAS: Аутентификация с помощью форм SSRS, подписки - PullRequest
0 голосов
/ 22 октября 2009

Я успешно внедрил проверку подлинности с помощью форм в 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 - это мое собственное расширение безопасности.

У меня есть настройки RoleManager и поставщика членства в web.config в каталоге / ReportServer.

Обходит ли подписчик каким-либо образом настройки сайта?

UPDATE:

Хорошо, я обнаружил, что, очевидно, он работает с любыми значениями, установленными в MACHINE.CONFIG, когда подписка оценивается / запускается агентом sql.

Любые подсказки, почему он не использует настройки web.config, а идет прямо к machine.config?

1 Ответ

1 голос
/ 04 ноября 2009

Я не знаком с 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.

Надеюсь, это поможет.

...