Compartilhar via


Elemento <trustInfo> (aplicativo ClickOnce)

Descreve as permissões de segurança mínimas necessárias para que o aplicativo seja executado no computador cliente.

Sintaxe


      <trustInfo>
   <security>
      <applicationRequestMinimum>
         <PermissionSet
            ID
            Unrestricted>
            <IPermission
               class
               version
               Unrestricted
            />
         </PermissionSet>
         <defaultAssemblyRequest
            permissionSetReference
         />
         <assemblyRequest
            name
            permissionSetReference
         />
      </applicationRequestMinimum>
      <requestedPrivileges>
         <requestedExecutionLevel
            level
            uiAccess
         />
      </requestedPrivileges>
   </security>
</trustInfo>

Elementos e atributos

O elemento trustInfo é necessário e está no namespace asm.v2. Ele não tem atributos e contém os elementos a seguir.

segurança

Obrigatórios. Este elemento é um elemento filho do elemento trustInfo. Ele contém o elemento applicationRequestMinimum e não tem atributos.

applicationRequestMinimum

Obrigatórios. Esse elemento é um filho do elemento security e contém os elementos PermissionSet, assemblyRequest e defaultAssemblyRequest. Esse elemento não tem atributos.

PermissionSet

Obrigatórios. Esse elemento é um filho do elemento applicationRequestMinimum e contém o elemento IPermission. Esse elemento tem os atributos a seguir.

  • ID

    Obrigatórios. Identifica o conjunto de permissões. Esse atributo pode ser qualquer valor. A ID é referenciada nos atributos defaultAssemblyRequest e assemblyRequest.

  • version

    Obrigatórios. Identifica a versão da permissão. Normalmente, esse valor é 1.

IPermission

Opcional. Este elemento é um elemento filho do elemento PermissionSet. O elemento IPermission identifica totalmente uma classe de permissão no .NET Framework. O elemento IPermission tem os atributos a seguir, mas pode ter atributos adicionais que correspondem às propriedades na classe de permissão. Para descobrir a sintaxe de uma permissão específica, consulte os exemplos listados no arquivo Security.config.

  • class

    Obrigatórios. Identifica a classe de permissão por nome forte. Por exemplo, o código a seguir identifica o tipo FileDialogPermission.

    System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

  • version

    Obrigatórios. Identifica a versão da permissão. Normalmente, esse valor é 1.

  • Unrestricted

    Obrigatórios. Identifica se o aplicativo precisa de uma concessão irrestrita dessa permissão. Se true, a concessão de permissão será incondicional. Se false, ou se esse atributo for indefinido, ele será restrito de acordo com os atributos específicos de permissão definidos na marca IPermission. Habilite as seguintes permissões:

    <IPermission
      class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      version="1"
      Read="USERNAME" />
    <IPermission
      class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      version="1"
      Unrestricted="true" />
    

    Neste exemplo, a declaração para EnvironmentPermission restringe o aplicativo a ler apenas a variável de ambiente USERNAME, enquanto a declaração para FileDialogPermission fornece ao aplicativo o uso irrestrito de todas as classes FileDialog.

defaultAssemblyRequest

Opcional. Identifica o conjunto de permissões concedidas a todos os assemblies. Esse elemento é um filho do elemento applicationRequestMinimum e não tem os seguintes atributos.

  • permissionSetReference

    Obrigatórios. Identifica a ID do conjunto de permissões que é a permissão padrão. O conjunto de permissões é declarado no elemento PermissionSet.

assemblyRequest

Opcional. Identifica permissões para um assembly específico. Esse elemento é um filho do elemento applicationRequestMinimum e não tem o seguinte atributo.

  • Name

    Obrigatórios. Identifica o nome do assembly.

  • permissionSetReference

    Obrigatórios. Identifica a ID do conjunto de permissões exigido por esse assembly. O conjunto de permissões é declarado no elemento PermissionSet.

requestedPrivileges

Opcional. Esse elemento é um filho do elemento security e contém o elemento requestedExecutionLevel. Esse elemento não tem atributos.

requestedExecutionLevel

Opcional. Identifica o nível de segurança no qual o aplicativo solicita a execução. Ele não tem elementos filho e tem os atributos a seguir.

  • Level

    Obrigatórios. Indica o nível de segurança que o aplicativo está solicitando. Os valores possíveis são:

    asInvoker, solicitando nenhuma permissão adicional. Esse nível não requer nenhum prompt de confiança adicional.

    highestAvailable, solicitando as permissões mais altas disponíveis para o processo pai.

    requireAdministrator, solicitando permissões completas do administrador.

    Os aplicativos ClickOnce só serão instalados com um valor de asInvoker. A instalação falhará com qualquer outro valor.

  • uiAccess

    Opcional. Indica se o aplicativo requer acesso a elementos de interface do usuário protegidos. Os valores são true ou false, e o padrão é false. Somente aplicativos assinados devem ter um valor igual a true.

Comentários

Se um aplicativo ClickOnce solicitar mais permissões do que o computador cliente concederá por padrão, o Gerenciador de Confiança do Common Language Runtime perguntará ao usuário se ela deseja conceder ao aplicativo esse nível elevado de confiança. Se ela disser não, o aplicativo não será executado; caso contrário, ele será executado com as permissões solicitadas.

Todas as permissões solicitadas usando defaultAssemblyRequest e assemblyRequest serão concedidas sem que o usuário solicite se o manifesto de implantação tiver uma Licença de Confiança válida.

Para saber mais sobre a Elevação de Permissões, consulte Proteção de Aplicativos ClickOnce. Para obter mais informações sobre a implantação política, consulte Visão geral da implantação de Aplicativos Confiáveis.

Exemplos

Os três exemplos de código a seguir ilustram trustInfo elementos para as zonas de segurança nomeadas padrão – Internet, LocalIntranet e FullTrust – para uso no manifesto do aplicativo de uma implantação do ClickOnce.

O primeiro exemplo ilustra o elemento trustInfo para as permissões padrão disponíveis na zona de segurança da Internet.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="Internet">
          <IPermission
            class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Access="Open" />
          <IPermission
           class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Allowed="DomainIsolationByUser"
            UserQuota="10240" />
          <IPermission
            class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Flags="Execution" />
          <IPermission
            class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Window="SafeTopLevelWindows"
            Clipboard="OwnClipboard" />
          <IPermission
            class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            version="1"
            Level="SafePrinting" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="Internet" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>

O segundo exemplo ilustra o elemento trustInfo para as permissões padrão disponíveis na zona de segurança de LocalIntranet.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="LocalIntranet">
          <IPermission
            class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Read="USERNAME" />
          <IPermission
            class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Unrestricted="true" />
          <IPermission
            class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Allowed="AssemblyIsolationByUser"
            UserQuota="9223372036854775807"
            Expiry="9223372036854775807"
            Permanent="True" />
          <IPermission
            class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Flags="ReflectionEmit" />
          <IPermission
            class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Flags="Assertion, Execution" />
          <IPermission
            class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Unrestricted="true" />
          <IPermission
            class="System.Net.DnsPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1"
            Unrestricted="true" />
          <IPermission
            class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            version="1"
            Level="DefaultPrinting" />
          <IPermission
            class="System.Diagnostics.EventLogPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="LocalIntranet" />
      </applicationRequestMinimum>
    </security>
</trustInfo>

O terceiro exemplo ilustra o elemento trustInfo para as permissões padrão disponíveis na zona de segurança FullTrust.

<trustInfo>
  <security>
    <applicationRequestMinimum>
      <PermissionSet ID="FullTrust" Unrestricted="true" />
      <defaultAssemblyRequest permissionSetReference="FullTrust" />
    </applicationRequestMinimum>
  </security>
</trustInfo>

Confira também