Domanda

Ho implementato con successo l'autenticazione basata su moduli in SSRS, quindi ora utilizza sia Ruoli che Utenti dal mio sito Web, utilizzando il normale framework di appartenenza asp.net.

Posso accedere al portale ed eseguire qualsiasi rapporto, purché abbia il ruolo corretto dalla mia app originale. Tutto bene.

Tuttavia, se creo un abbonamento, quindi, quando viene eseguito l'abbonamento, non ottengo il mio rapporto, ma piuttosto questo messaggio nel registro:

    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 ---

La linea MyApp è la mia estensione di sicurezza personalizzata.

Ho il RoleManager e il provider di appartenenze impostati in web.config nella directory / ReportServer.

Il runner dell'abbonamento elude in qualche modo le impostazioni del sito Web?

UPDATE:

Ok, quindi ho scoperto che apparentemente è in esecuzione con qualunque sia il valore impostato in MACHINE.CONFIG quando una sottoscrizione viene valutata / attivata dall'agente sql.

Qualche indizio sul perché non usi le impostazioni web.config, ma vada direttamente su machine.config?

È stato utile?

Soluzione

Non ho familiarità con SSRS, ma sono con provider .NET / membership e web / app / machine.config.

La tua eccezione indica l'abbonamento! WindowsService_0! 161a0! 10/21 / 2009-22: 42: 05 :: Penso che questo significhi che il servizio in abbonamento è un servizio Windows e non funziona in IIS. Ciò significa che ha un file di configurazione diverso.

http: // reportserver - > IIS - > web.config (La tua configurazione) abbonamento! WindowsService - > Servizi - > app.config - > machine.config.

Spero che sia d'aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top