Artigo: 842419 - Última revisão: terça-feira, 3 de Abril de 2007 - Revisão: 2.2

Como conceder permissões a uma assemblagem personalizada que é referenciada num 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 | Reduzir tudo

Sumário

Este artigo descreve um problema que ocorre quando acede a uma assemblagem personalizada no relatório que não tem permissões suficientes nos recursos no seu ambiente. O artigo também fornece passos para conceder permissões para as assemblagens personalizadas utilizados nos relatórios. Para tal, siga estes passos:
  1. permissões de declaração de assemblagem personalizado.
  2. a montagem personalizada disponível para Designer de mapas e servidor de relatórios.
  3. referência da assemblagem personalizada no relatório.
  4. modifique o código de acesso definições para a assemblagem personalizado.

INTRODUÇÃO

Relatórios que acedem a assemblagens personalizadas não poderão fazer com êxito se as assemblagens personalizadas não tem permissões suficientes. Este artigo descreve como modificar os ficheiros de configuração de políticas para conceder permissões adicionais a uma assemblagem personalizada que é acedida por um relatório.

Mais Informação

Depois de criar uma assemblagem personalizada utilizando o Microsoft .NET Framework e, em seguida, aceder a assemblagem personalizada no relatório e pré-visualizar o relatório no Designer de mapas, o relatório não pode compor com êxito. No entanto, se tiver o mesmo relatório no modo de DebugLocal no Designer de relatórios ou se visualizar o relatório utilizando o Gestor de relatórios, o seguinte erro pode ser composto no relatório em vez do resultado da assemblagem referenciada personalizado:
# Erro
Além disso, poderá receber uma mensagem de erro semelhante à seguinte no estruturador de relatórios quando executa o relatório no modo DebugLocal:
Pedir permissão de tipo System.Security.Permissions.FileIOPermission, mscorlib, versão = 1.0.5000.0, idioma neutro, PublicKeyToken = = b77a5c561934e089 falhou.
Este problema poderá ocorrer quando as assemblagens personalizadas que são referenciadas no relatório não tem permissões suficientes.

Nota Se pré-visualiza o relatório no Designer de mapas, o relatório executa todas as expressões de relatório utilizando o conjunto de permissões FullTrust. O relatório não utiliza as definições de política de segurança.

Para conceder as permissões necessárias para uma assemblagem personalizada, siga estes passos:
  1. Asserção permissions in a assemblagem personalizada.
  2. Disponibilize a assemblagem personalizada para o Designer de mapas e servidor de relatórios.
  3. Fazer referência a assemblagem personalizada no relatório.
  4. Modificar as definições de segurança acesso código para a assemblagem personalizada.

Permissions in a assemblagem personalizada de asserção

Para obter as permissões necessárias para executar o código na assemblagem personalizada, tem de asserção as permissões necessárias no código assemblagem personalizado.

Nota Os exemplos fornecidos nesta secção utilizam código C#.

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 a assemblagem personalizada para o Designer de mapas e servidor de relatórios

Para disponibilizar a assemblagem personalizada para o Designer de mapas e servidor de relatórios, tem de copiar a assemblagem personalizada para as seguintes pastas:
  • Installation Drive: \Programas\Microsoft SQL Server\80\Tools\Report Designer
  • Installation Drive: \Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin

A assemblagem personalizada no relatório de referência

Para fazer referência a uma assemblagem no relatório personalizada, siga estes passos:
  1. Abra o projecto de relatório no Microsoft Visual Studio .NET 2003.
  2. Abra o relatório tem de referenciar a assemblagem personalizada.
  3. No menu relatório , clique em relatório propriedades .
  4. Na caixa de diálogo Propriedades do relatório , clique no separador de referências .
  5. Em referências , clique no botão reticências junto de cabeçalho da coluna nome da assemblagem .
  6. Na caixa de diálogo Adicionar referências , clique em Procurar .
  7. Na caixa de diálogo Seleccionar componentes , localize e faça clique sobre a assemblagem personalizada e, em seguida, clique em Abrir .
  8. Na caixa de diálogo Adicionar referências , clique em OK .
  9. Na caixa de diálogo Propriedades do relatório , clique em OK .

Modifique o código de acesso definições para a assemblagem personalizado

Para conceder as permissões necessárias à assemblagem personalizado, terá de modificar as definições de segurança do código de acesso nos ficheiros de configuração de política que correspondem ao estruturador de relatórios e servidor de relatórios. Para o fazer, siga estes passos:
  1. Crie o elemento de conjunto de permissões e o elemento de grupo de código para a assemblagem personalizada que especifica as permissões necessárias. Para o fazer, siga estes passos:
    1. Clique em Iniciar , aponte para definições e, em seguida, clique em Painel de controlo .
    2. No painel de controlo, faça duplo clique em Ferramentas administrativas .
    3. Na janela ferramentas administrativas, clique duas vezes configuração do Microsoft .NET Framework 1.1 .
    4. No painel esquerdo da janela do .NET 1.1 de configuração, expanda Política de segurança de tempo de execução .
    5. Em Tempo de execução de política de segurança , expanda o computador .
    6. Em computador , clique com o botão direito do rato Conjuntos de permissões e, em seguida, clique em Novo .
    7. Na identificar o novo conjunto de permissões , clique em criar um novo conjunto de permissões .
    8. Escreva TestPermissions na caixa Nome e, em seguida, clique em seguinte .
    9. Na página Atribuir permissões individuais ao 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 Definições de permissão , clique em Conceder às assemblagens as seguintes permissões de segurança e, em seguida, clique para seleccionar as seguintes caixas de verificação:
      • Permitir a execução de assemblagem
      • qualquer permissão que tenha sido concedida de asserção
      Nota Pode também activar as outras definições de permissão listados consoante os requisitos.
    11. Clique em OK .
    12. Na página Atribuir permissões individuais ao 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 de configuração, expanda Os grupos de código em computador .
    15. Em Grupos de código , clique com o botão direito do rato All_Code e, em seguida, clique em Novo .
    16. Na identificar o novo grupo de código de página, clique em criar um novo código de grupo , escreva TestCodeGroup na caixa nome e, em seguida, clique em seguinte .
    17. Na página Seleccione um tipo de condição , clique em URL na lista Escolha o tipo de condição para este grupo de código .
    18. Escreva o caminho absoluto para a assemblagem personalizada (Installation Drive: \Programas\Microsoft SQL Server\80\Tools\Report Designer\ Custom assembly name, por exemplo) na pasta Designer de mapas na caixa URL e, em seguida, clique em seguinte .
    19. Na página atribuir um conjunto de permissões para o grupo de código , clique em utilizar existente permissão definida e, em seguida, clique em TestPermissions na lista.
    20. Clique em seguinte e, em seguida, clique em Concluir .
    O conjunto de permissões e o grupo de código que correspondem a assemblagem personalizada são criadas acordo com para as especificações no ficheiro Security.config no computador.
  2. Adicione o conjunto de permissões e o grupo de código que correspondem a assemblagem personalizada nos ficheiros de configuração de política de segurança para o servidor de relatório. Para o fazer, siga estes passos:
    1. Abra o ficheiro Security.config, o ficheiro Rspreviewpolicy.config e o ficheiro Rssrvpolicy.config.

      Nota A lista seguinte fornece as localizações predefinidas do ficheiro Security.config, o ficheiro Rspreviewpolicy.config e o ficheiro Rssrvpolicy.config.
      • Por predefinição, o ficheiro Security.config está localizado na Installation Drive: \WINDOWS\Microsoft.NET\Framework\v1.1.4322\config\security.config pasta.
      • Por predefinição, o Rspreviewpolicy.config está localizado na Installation Drive: \Programas\Microsoft SQL Server\80\Tools\Report Designer\rspreviewpolicy.config pasta.
      • Por predefinição, a pasta Rssrvpolicy.config está localizada na Installation Drive: \Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\rssrvpolicy.config pasta.
    2. Copie o elemento de PermissionSet corresponde para a permissão de TestPermissions definida a partir do ficheiro Security.config.
    3. Cole o PermissionSet de elemento que corresponde à permissão TestPermissions definido no ficheiro Rspreviewpolicy.config e o ficheiro Rssrvpolicy.config como o último subelemento do elemento NamedPermissionSets .
    4. Copie o elemento de CodeGroup que corresponde ao grupo de código TestCodeGroup do ficheiro Security.config.
    5. Cole o elemento de CodeGroup que corresponde ao grupo de código TestCodeGroup no ficheiro Rspreviewpolicy.config e no ficheiro Rssrvpolicy.config após o primeiro elemento CodeGroup .
    6. Remova o PermissionSet de elemento que corresponde ao conjunto de permissões TestPermissions e o elemento de CodeGroup que corresponde ao grupo de código TestCodeGroup a partir do ficheiro Security.config.
    7. Guardar o ficheiro Security.config, o ficheiro Rspreviewpolicy.config e o ficheiro Rssrvpolicy.config.
Depois de aceder a assemblagem personalizada no relatório e executar o relatório no modo de DebugLocal, o mapa processa com êxito.



Referências

Para mais informações sobre segurança de acesso de código na criação de relatórios Services, visite este site da Web MSDN:
http://msdn2.microsoft.com/en-us/library/aa902638(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa902638(SQL.80).aspx)
Para mais informações sobre a utilização personalizadas assemblagens com relatórios do Reporting Services, visite este site da Web 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 depuração as assemblagens personalizadas no Reporting Services, visite o seguinte site da Web 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )