ID do artigo: 842419 - Última revisão: terça-feira, 3 de abril de 2007 - Revisão: 2.2

Como conceder permissões a um assembly personalizado que é referenciado em um relatório no Reporting Services

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo descreve um problema que ocorre quando você acessa um assembly personalizado em seu relatório que não tem permissões suficientes sobre os recursos em seu ambiente. O artigo também fornece etapas para conceder permissões para os assemblies personalizados são usados em relatórios. Para fazer isso, execute estas etapas:
  1. permissões de Assert em seu assembly personalizado.
  2. Verifique o assembly personalizado disponível para Report Designer e Report Server.
  3. referência de assembly personalizado em seu relatório.
  4. modificar as configurações de segurança de acesso de código para o assembly personalizado.

INTRODUÇÃO

Relatórios que acessar assemblies personalizados não podem processar com êxito se os assemblies personalizados não tem permissões suficientes. Este artigo descreve como modificar os arquivos de configuração de diretiva para conceder permissões adicionais para um assembly personalizado que é acessado por um relatório.

Mais Informações

Após você criar um assembly personalizado usando o Microsoft .NET Framework e, em seguida, você acessa o assembly personalizado em seu relatório e visualiza o relatório no Report Designer, o relatório não pode processar com êxito. No entanto, se você executar o mesmo relatório no modo de DebugLocal no Report Designer ou se você exibir o relatório usando o Gerenciador de relatório, o seguinte erro pode ser processado no relatório, em vez da saída do assembly referenciado personalizado:
Erro de #
Além disso, você receberá uma mensagem de erro semelhante à seguinte no Report Designer ao executar o relatório no modo de DebugLocal:
Solicitar a permissão do tipo System.Security.Permissions.FileIOPermission, mscorlib, versão = 1.0.5000.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 falha.
Esse problema pode ocorrer quando os assemblies personalizados que são referenciados em seu relatório não tem permissões suficientes.

Observação Se você visualizar o relatório no Report Designer, o relatório executa todas as expressões relatório usando o conjunto de permissões FullTrust. O relatório não usa as configurações de diretiva de segurança.

Para conceder as permissões necessárias para um assembly personalizado, execute essas etapas:
  1. Declare permissões no seu assembly personalizado.
  2. Disponibilize o assembly personalizado para Report Designer e ao servidor de relatórios.
  3. Referência ao assembly personalizado em seu relatório.
  4. Modificar as configurações de segurança acesso código para o assembly personalizado.

Declarar permissões no seu assembly personalizado

Para obter as permissões necessárias para executar o código em seu assembly personalizado, você deve declarar as permissões necessárias no seu código de assembly personalizado.

Observação Os exemplos fornecidos nesta seção usam código translation from VPE for Csharp.

For example, if you access data in Microsoft SQL Server tables by using the "System.Data.SQLClient" namespace in your custom assembly, you must add the following code to your custom assembly before you use the "System.Data.SQLClient" namespace:
System.Data.SqlClient.SqlClientPermission pSql = new SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted);
pSql.Assert();
If you access a file in your custom assembly, you must add the following code to your custom assembly before you access the file:
FileIOPermission filePerm = new FileIOPermission(FileIOPermissionAccess.Read, "C:\TestFile");
filePerm.Assert();
Similarly, if you access a Web service in your custom assembly, you must add code that is similar to the following to assert the Web permissions:
System.Text.RegularExpressions.Regex urlRegEx = new System.Text.RegularExpressions.Regex(@"http://www\.webcontinuum\.net/.*");
System.Net.WebPermission p = new System.Net.WebPermission(NetworkAccess.Connect,urlRegEx);

p.Assert();
For more information about asserting permissions in your custom assembly, visit the following MSDN Web site:
http://msdn2.microsoft.com/en-us/library/aa179495(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa179495(SQL.80).aspx)

Disponibilizar o assembly personalizado para Report Designer e ao servidor de relatórios

Para disponibilizar seu assembly personalizado para Report Designer e ao servidor de relatórios, você deve copiar o assembly personalizado para as seguintes pastas:
  • Installation Drive: \Arquivos de Programas\Microsoft SQL Server\80\Tools\Report Designer
  • Installation Drive: \Arquivos de Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin

Referência ao assembly personalizado em seu relatório

Para fazer referência um assembly personalizado em seu relatório, siga estas etapas:
  1. Abra o projeto de relatório no Microsoft Visual Studio .NET 2003.
  2. Abra o relatório deve referenciar o assembly personalizado.
  3. No menu de relatório , clique em relatório propriedades .
  4. Na caixa de diálogo Propriedades do relatório , clique na guia References .
  5. Em referências , clique o botão de reticências próximo a no cabeçalho da coluna nome do assembly .
  6. Na caixa de diálogo Add References , clique em Procurar .
  7. Na caixa de diálogo Selecionar componente , localize e clique em seu assembly personalizado e, em seguida, clique em Abrir .
  8. Na caixa de diálogo Add References , clique em OK .
  9. Na caixa de diálogo Propriedades do relatório , clique em OK .

Modificar as configurações de segurança de acesso de código para seu assembly personalizado

Para conceder as permissões necessárias para o assembly personalizado, você deve modificar as configurações de segurança de acesso código nos arquivos de configuração de diretiva que correspondem ao Report Designer e ao servidor de relatórios. Para fazer isso, execute as seguintes etapas:
  1. Crie o elemento de conjunto de permissão e o elemento de grupo de código para o assembly personalizado que especifica as permissões necessárias. Para fazer isso, execute as seguintes etapas:
    1. Clique em Iniciar , aponte para configurações e, em seguida, clique em Painel de controle .
    2. No painel de controle, clique duas vezes em Ferramentas administrativas .
    3. Na janela Ferramentas administrativas, clique duas vezes em Microsoft .NET Framework 1.1 Configuration .
    4. No painel esquerdo da janela do .NET 1.1 Configuration, expanda Runtime Security Policy .
    5. Em Runtime Security Policy , expanda computador .
    6. Em computador , clique com o botão direito Conjuntos de permissões e, em seguida, clique em novo .
    7. Em identificar o novo conjunto de permissões de página, clique em criar um novo conjunto de permissão .
    8. Digite TestPermissions na caixa nome e em seguida, clique em Avançar .
    9. Na página Atribuir permissões individuais para conjunto de permissões , clique em segurança na lista Permissões disponíveis e, em seguida, clique em Adicionar .
    10. Na caixa de diálogo Configurações de permissão , clique em assemblies de conceder as seguintes permissões de segurança e, em seguida, clique para selecionar as seguintes caixas de seleção:
      • Ativar execução de assembly
      • declarar qualquer permissão que tenha sido concedida
      Observação Você também pode ativar as outras configurações de permissão listados de acordo com suas necessidades.
    11. Clique em OK .
    12. Na página Atribuir permissões individuais para conjunto de permissões , adicione quaisquer permissões adicionais da lista de Permissões disponíveis à lista de Permissões atribuído .
    13. Clique em Concluir .
    14. Na janela .NET 1.1 Configuration, expanda Grupos de códigos em computador .
    15. Em Grupos de código , clique com o botão direito do mouse em All_Code e, em seguida, clique em novo .
    16. Em identificar o novo grupo de códigos de página, clique em criar um novo grupo de códigos , digite TestCodeGroup na caixa nome e em seguida, clique em Avançar .
    17. Na página Escolha um tipo de condição , clique em URL na lista Escolha o tipo de condição para este grupo de códigos .
    18. Digite o caminho absoluto do seu assembly personalizado (Installation Drive: \Arquivos de Programas\Microsoft SQL Server\80\Tools\Report Designer\ Custom assembly name, por exemplo) na pasta Report Designer na caixa URL e em seguida, clique em Avançar .
    19. Na página atribuir um conjunto de permissões para o grupo de códigos , clique em Usar existente permissão definida e, em seguida, clique em TestPermissions na lista.
    20. Clique em Avançar e, em seguida, clique em Concluir .
    O conjunto de permissão e grupo de códigos que correspondem ao seu assembly personalizado são criadas de acordo com suas especificações no arquivo Security.config no seu computador.
  2. Adicione o conjunto de permissões e o grupo de códigos que correspondem a seu assembly personalizado nos arquivos de configuração de diretiva de segurança para o servidor de relatório. Para fazer isso, execute as seguintes etapas:
    1. Abra o arquivo Security.config, o arquivo Rspreviewpolicy.config e o arquivo rssrvpolicy.config.

      Observação A lista a seguir fornece os locais padrão do arquivo Security.config, o arquivo Rspreviewpolicy.config e o arquivo rssrvpolicy.config.
      • Por padrão, o arquivo Security.config está localizado na Installation Drive: \WINDOWS\Microsoft.NET\Framework\v1.1.4322\config\security.config pasta.
      • Por padrão, o Rspreviewpolicy.config está localizado na Installation Drive: \Arquivos de Programas\Microsoft SQL Server\80\Tools\Report Designer\rspreviewpolicy.config pasta.
      • Por padrão, a pasta rssrvpolicy.config está localizada na Installation Drive: \Arquivos de Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\rssrvpolicy.config pasta.
    2. Copie o elemento PermissionSet que corresponde à permissão TestPermissions conjunto do arquivo Security.config.
    3. Cole o elemento PermissionSet que corresponde à permissão TestPermissions definida no arquivo Rspreviewpolicy.config e o arquivo rssrvpolicy.config como o último sub-elemento do elemento NamedPermissionSets .
    4. Copie o elemento CodeGroup que corresponde ao grupo de códigos TestCodeGroup do arquivo Security.config.
    5. Cole o elemento CodeGroup que corresponde ao grupo de códigos TestCodeGroup no arquivo Rspreviewpolicy.config e no arquivo rssrvpolicy.config após o primeiro elemento CodeGroup .
    6. Remova o elemento PermissionSet que corresponde ao conjunto de permissão TestPermissions e o elemento CodeGroup que corresponde ao grupo de códigos TestCodeGroup do arquivo Security.config.
    7. Salve o arquivo Security.config, o arquivo Rspreviewpolicy.config e o arquivo rssrvpolicy.config.
Depois de você acessar o assembly personalizado em seu relatório e executar o relatório no modo de DebugLocal, o relatório processado com êxito.



Referências

Para obter mais informações sobre segurança de acesso ao código no relatório Services, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/aa902638(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa902638(SQL.80).aspx)
Para obter mais informações sobre como o usar assemblies personalizados com relatórios no Reporting Services, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/aa179513(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa179513(SQL.80).aspx)
Para obter mais informações sobre como depurar os assemblies personalizados no Reporting Services, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/aa179526(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa179526(SQL.80).aspx)


A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Reporting Services
Palavras-chave: 
kbmt kbpolicy kbpermissions kbsettings kbsecurity kbdeployment kbreport kberrmsg kbinfo KB842419 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 842419  (http://support.microsoft.com/kb/842419/en-us/ )