Partager via


<trustInfo>, élément (Application ClickOnce)

Décrit les autorisations de sécurité minimales requises pour l'exécution de l'application sur l'ordinateur client.

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

Éléments et attributs

L'élément trustInfo est obligatoire et se trouve dans l'espace de noms asm.v2. Il ne possède pas d'attributs et contient les éléments suivants.

security

Obligatoire. Cet élément est un enfant de l'élément trustInfo. Il contient l'élément applicationRequestMinimum et n'a pas d'attributs.

applicationRequestMinimum

Obligatoire. Cet élément est un enfant de l'élément security et contient les éléments PermissionSet, assemblyRequest et defaultAssemblyRequest. Cet élément ne possède pas d'attribut.

PermissionSet

Obligatoire. Cet élément est un enfant de l'élément applicationRequestMinimum et contient l'élément IPermission. Cet élément possède les attributs suivants.

Attribut

Description

ID

Obligatoire. Identifie le jeu d'autorisations. Cet attribut peut avoir une valeur quelconque. L'ID est référencé dans les attributs defaultAssemblyRequest et assemblyRequest.

version

Obligatoire. Identifie la version de l'autorisation. En général, elle a la valeur 1.

IPermission

Facultatif. Cet élément est un enfant de l'élément PermissionSet. L'élément IPermission identifie une classe d'autorisation de façon complète dans le .NET Framework. L'élément IPermission possède les attributs suivants, mais il peut en avoir d'autres qui correspondent aux propriétés définies sur la classe d'autorisation. Pour connaître la syntaxe d'une autorisation spécifique, consultez les exemples répertoriés dans le fichier Security.config.

Attribut

Description

class

Obligatoire. Identifie la classe d'autorisation par son nom fort. Par exemple, le code suivant identifie le type FileDialogPermission.

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

version

Obligatoire. Identifie la version de l'autorisation. En général, elle a la valeur 1.

Unrestricted

Obligatoire. Indique s'il est nécessaire d'accorder cette autorisation sans aucune restriction à l'application. Si la valeur est true, l'autorisation est octroyée de façon non conditionnelle. Si la valeur est false ou si cet attribut n'est pas défini, l'autorisation est limitée par les attributs spécifiques à l'autorisation définis sur la balise IPermission. Prenons l'exemple d'autorisations suivant :

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

Dans la déclaration de EnvironmentPermission de cet exemple, l'application est limitée à la seule lecture de la variable d'environnement USERNAME tandis que la déclaration de FileDialogPermission concède à l'application une utilisation sans restriction de toutes les classes FileDialog.

defaultAssemblyRequest   

Facultatif. Identifie le jeu d'autorisations accordé à tous les assemblys. Cet élément est un enfant de l'élément applicationRequestMinimum et possède les attributs suivants.

Attribut

Description

permissionSetReference

Obligatoire. Identifie l'ID du jeu d'autorisations qui représente l'autorisation par défaut. Le jeu d'autorisations est déclaré dans l'élément PermissionSet.

assemblyRequest   

Facultatif. Identifie les autorisations d'un assembly spécifique. Cet élément est un enfant de l'élément applicationRequestMinimum et possède les attributs suivants.

Attribut

Description

Name

Obligatoire. Spécifie le nom d'assembly.

permissionSetReference

Obligatoire. Identifie l'ID du jeu d'autorisations dont cet assembly a besoin. Le jeu d'autorisations est déclaré dans l'élément PermissionSet.

requestedPrivileges

Facultatif. Cet élément est un enfant de l'élément security et contient l'élément requestedExecutionLevel. Cet élément ne possède pas d'attribut.

requestedExecutionLevel

Facultatif. Identifie le niveau de sécurité nécessaire pour l'exécution de l'application. Cet élément ne contient pas d'enfants mais a les attributs suivants.

Attribut

Description

Level

Obligatoire. Indique le niveau de sécurité requis par l'application. Les valeurs possibles sont :

asInvoker, ne requiert aucune autorisation supplémentaire. Ce niveau ne requiert aucune invite d'approbation supplémentaire.

highestAvailable, requiert les autorisations disponibles les plus élevées pour le processus parent.

requireAdministrator, requiert des autorisations d'administrateur complètes.

Les applications ClickOnce s'installent uniquement avec une valeur de asInvoker. L'installation avec toute autre valeur échouera.

uiAccess

Facultatif. Indique si l'application requiert l'accès aux éléments protégés de l'interface utilisateur. Les valeurs sont true ou false et la valeur par défaut est false. Seules les applications signées doivent avoir la valeur true.

Notes

Si une application ClickOnce requiert davantage d'autorisations que celles octroyées par défaut par l'ordinateur client, le Gestionnaire de confiance du Common Language Runtime demande à l'utilisateur s'il souhaite accorder à l'application ce niveau de confiance élevé. S'il refuse, l'application ne s'exécute pas ; sinon, elle s'exécute avec les autorisations demandées.

Toutes les autorisations demandées à l'aide de defaultAssemblyRequest et assemblyRequest sont accordées sans inviter l'utilisateur à les confirmer si le manifeste de déploiement possède une licence de confiance valide.

Pour plus d'informations sur l'élévation d'autorisations, consultez Sécurisation des applications ClickOnce. Pour plus d'informations sur le déploiement de stratégies, consultez Vue d'ensemble du déploiement d'applications approuvées.

Exemples

Les trois exemples de code suivants illustrent des éléments trustInfo pour les zones de sécurité nommées par défaut, à savoir Internet, LocalIntranet et FullTrust, à utiliser dans le manifeste d'application d'un déploiement ClickOnce.

Le premier exemple illustre l'élément trustInfo pour les autorisations par défaut disponibles dans la zone de sécurité 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>

Le deuxième exemple illustre l'élément trustInfo pour les autorisations par défaut disponibles dans la zone de sécurité 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>

Le troisième exemple illustre l'élément trustInfo pour les autorisations par défaut disponibles dans la zone de sécurité FullTrust.

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

Voir aussi

Référence

Manifeste d'application ClickOnce

Concepts

Vue d'ensemble du déploiement d'applications approuvées