Partilhar via


Elemento <trustInfo>(aplicativo ClickOnce)

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

<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 trustInfo elemento é obrigatório e está sendo o asm.v2 espaço para nome. Ele não tiver atributos e contém os seguintes elementos.

segurança

Obrigatório. Este elemento é filho de trustInfo elemento. Ele contém o applicationRequestMinimum elemento e sem atributos.

applicationRequestMinimum

Obrigatório. Este elemento é filho do security elemento e contém o PermissionSet, assemblyRequest, e defaultAssemblyRequestelementos. Este elemento possui sem atributos.

PermissionSet

Obrigatório. Este elemento é filho do applicationRequestMinimum elemento e contém o IPermission elemento. Este elemento possui os seguintes atributos.

Atributo

Descrição

ID

Obrigatório. Identifica o conjunto de permissões. Esse atributo pode ser qualquer valor. A identificação é referenciada na defaultAssemblyRequest e assemblyRequest atributos.

version

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

IPermission

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

Atributo

Descrição

class

Obrigatório. Identifica a classe de permissão pelo nome de alta segurança. Por exemplo, o código a seguir identifica as FileDialogPermission tipo.

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

version

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

Unrestricted

Obrigatório. Identifica se o aplicativo precisa de uma concessão irrestrito dessa permissão. Se true, a concessão de permissão é incondicional. Se false, ou se esse atributo não está definido, é restringido de acordo com os atributos específicos de permissão definidos na IPermission marca. Tome 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 para ler somente a variável de ambiente USERNAME, ao passo que a declaração para FileDialogPermission oferece o uso do aplicativo irrestrito de todas as FileDialog classes.

defaultAssemblyRequest   

Opcional. Identifica o conjunto de permissões concedido a todos os assemblies. Este elemento é filho de applicationRequestMinimum elemento e tem os seguintes atributos.

Atributo

Descrição

permissionSetReference

Obrigatório. Identifica a identificação do conjunto de permissão que é a permissão padrão. O conjunto de permissões é declarado na PermissionSet elemento.

assemblyRequest   

Opcional. Identifica as permissões de um conjunto específico. Este elemento é filho de applicationRequestMinimum elemento e tem os seguintes atributos.

Atributo

Descrição

Name

Obrigatório. Identifica o nome do assembly.

permissionSetReference

Obrigatório. Identifica a identificação do conjunto de permissão que requer que este assembly. O conjunto de permissões é declarado na PermissionSet elemento.

requestedPrivileges

Opcional. Este elemento é filho do security elemento e contém o requestedExecutionLevel elemento. Este elemento possui sem atributos.

requestedExecutionLevel

Opcional. Identifica o nível de segurança no qual o aplicativo solicita a ser executado. Este elemento não tem filhos e tem os seguintes atributos.

Atributo

Descrição

Level

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

asInvoker, não solicitando a nenhuma permissão adicional. Este nível não requer confiança solicitações adicionais.

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

requireAdministrator, solicitando permissões de administrador completo.

ClickOnceaplicativos instalará apenas com um valor de asInvoker. Instalando com qualquer outro valor falhará.

uiAccess

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

Comentários

Se um ClickOnce aplicativo solicita mais permissões do que o computador cliente concederá por padrão, o common language Gerenciador do runtime de confiança solicitará ao usuário se ele deseja conceder ao aplicativo nesse alto nível de confiança. Se ela diz não, o aplicativo não será executada; Caso contrário, ele será executado com as permissões solicitadas.

Todas as permissões solicitadas usando defaultAssemblyRequest e assemblyRequest será concedido sem aviso ao usuário se o manifesto de implantação tiver uma licença válida de confiança.

Para obter mais informações sobre a elevação de permissões, consulte Protegendo aplicativos ClickOnce. Para obter mais informações sobre a implantação da diretiva, consulte Visão geral da implantação de aplicativos confiáveis.

Exemplos

O código de três exemplos a seguir ilustra trustInfo elementos para nomeada zonas de segurança padrão — Internet, LocalIntranet e FullTrust — para uso em um ClickOnce manifesto do implantação aplicativo.

O primeiro exemplo ilustra o trustInfo elemento 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 trustInfo elemento para as permissões padrão disponíveis na zona de segurança 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 trustInfo elemento 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>

Consulte também

Referência

Manifesto de aplicativo ClickOnce

Conceitos

Visão geral da implantação de aplicativos confiáveis