Elemento <trustInfo> (applicazione ClickOnce)

Descrive le autorizzazioni di sicurezza minime richieste per l'applicazione da eseguire sul computer 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>

Elementi e attributi

L'elemento trustInfo è obbligatorio e si trova nello spazio dei nomi asm.v2. Non dispone di attributi e contiene gli elementi riportati di seguito.

security

Obbligatoria. Questo elemento è figlio dell'elemento trustInfo. Contiene l'elemento applicationRequestMinimum e non dispone di attributi.

applicationRequestMinimum

Obbligatoria. Questo elemento è un elemento figlio di security e contiene gli elementi PermissionSet, assemblyRequest e defaultAssemblyRequest. Non dispone di attributi.

PermissionSet

Obbligatoria. Questo elemento è un elemento figlio di applicationRequestMinimum e contiene l'elemento IPermission. Dispone degli attributi riportati di seguito.

Attribute

Oggetto di descrizione

ID

Obbligatoria. Identifica il set di autorizzazioni. Questo attributo può avere un valore qualsiasi. All'ID viene fatto riferimento negli attributi defaultAssemblyRequest e assemblyRequest.

version

Obbligatoria. Identifica la versione dell'autorizzazione. In genere, il valore è 1.

IPermission

Facoltativo. Questo elemento è figlio dell'elemento PermissionSet. L'elemento IPermission identifica in modo completo una classe di autorizzazioni in .NET Framework. L'elemento IPermission dispone degli attributi riportati di seguito, ma può avere attributi aggiuntivi corrispondenti alle proprietà della classe di autorizzazioni. Per la sintassi di autorizzazioni specifiche, vedere gli esempi elencati nel file Security.config.

Attribute

Oggetto di descrizione

class

Obbligatoria. Identifica la classe di autorizzazioni in base al nome sicuro. Ad esempio, nel codice riportato di seguito viene identificato il tipo FileDialogPermission.

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

version

Obbligatoria. Identifica la versione dell'autorizzazione. In genere, il valore è 1.

Unrestricted

Obbligatoria. Indica se per l'applicazione è necessaria una concessione dell'autorizzazione senza restrizioni. Se l'attributo è impostato su true, la concessione dell'autorizzazione è incondizionata. Se è impostato su false o se l'attributo non è definito, tale autorizzazione è limitata in base agli attributi specifici definiti nel tag IPermission. Si considerino le seguenti autorizzazioni:

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

In questo esempio la dichiarazione di EnvironmentPermission limita l'applicazione alla sola lettura della variabile di ambiente USERNAME, mentre la dichiarazione di FileDialogPermission consente all'applicazione di utilizzare senza restrizioni tutte le classi FileDialog.

defaultAssemblyRequest   

Facoltativo. Identifica il set di autorizzazioni concesso a tutti gli assembly. Questo elemento è un elemento figlio di applicationRequestMinimum e dispone degli attributi riportati di seguito.

Attribute

Oggetto di descrizione

permissionSetReference

Obbligatoria. Identifica l'ID del set di autorizzazioni che corrisponde all'autorizzazione predefinita. Il set di autorizzazioni viene dichiarato nell'elemento PermissionSet.

assemblyRequest   

Facoltativo. Identifica le autorizzazioni per un assembly specifico. Questo elemento è un elemento figlio di applicationRequestMinimum e dispone degli attributi riportati di seguito.

Attribute

Oggetto di descrizione

Name

Obbligatoria. Identifica il nome dell'assembly.

permissionSetReference

Obbligatoria. Identifica l'ID del set di autorizzazioni richiesto dall'assembly. Il set di autorizzazioni viene dichiarato nell'elemento PermissionSet.

requestedPrivileges

Facoltativo. Questo elemento è un elemento figlio di security e contiene l'elemento requestedExecutionLevel. Non dispone di attributi.

requestedExecutionLevel

Facoltativo. Identifica il livello di sicurezza al quale l'applicazione deve essere eseguita. Questo elemento non contiene elementi figlio e dispone degli attributi seguenti.

Attribute

Oggetto di descrizione

Level

Obbligatoria. Indica il livello di sicurezza richiesto dall'applicazione. Di seguito sono riportati i valori possibili:

asInvoker, non richiede autorizzazioni aggiuntive. Questo livello non richiede richieste di attendibilità aggiuntive.

highestAvailable, richiede le autorizzazioni più elevate disponibili al processo padre.

requireAdministrator, richiede autorizzazioni di amministratore complete.

Le applicazioni ClickOnce verranno installate solo con il valore asInvoker. L'installazione con qualsiasi altro valore non verrà completata.

uiAccess

Facoltativo. Indica se l'applicazione richiede l'accesso agli elementi dell'interfaccia utente protetti. I valori sono true o false e l'impostazione predefinita è false. Solo le applicazioni firmate dovrebbero avere un valore true.

Note

Se un'applicazione ClickOnce richiede autorizzazioni più ampie rispetto a quelle concesse per impostazione predefinita dal computer client, il gestore di attendibilità di Common Language Runtime chiederà all'utente se desidera concedere all'applicazione questo livello di attendibilità elevato. In caso di risposta negativa, l'applicazione non verrà eseguita. In caso affermativo, verrà eseguita con le autorizzazioni richieste.

Tutte le autorizzazioni richieste mediante defaultAssemblyRequest e assemblyRequest verranno concesse senza chiedere all'utente se il manifesto di distribuzione dispone di una licenza di attendibilità valida.

Per ulteriori informazioni sull'elevazione delle autorizzazioni, vedere Protezione di applicazioni ClickOnce. Per ulteriori informazioni sulla distribuzione dei criteri, vedere Cenni preliminari sulla distribuzione di applicazioni attendibili.

Esempi

Nei tre esempi di codice riportati di seguito vengono illustrati gli elementi trustInfo per le aree di sicurezza denominate predefinite (Internet, LocalIntranet e FullTrust) destinati all'utilizzo nel manifesto dell'applicazione di una distribuzione ClickOnce.

Nel primo esempio viene illustrato l'elemento trustInfo per le autorizzazioni predefinite disponibili nell'area di sicurezza 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>

Nel secondo esempio viene illustrato l'elemento trustInfo per le autorizzazioni predefinite disponibili nell'area di sicurezza 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>

Nel terzo esempio viene illustrato l'elemento trustInfo per le autorizzazioni predefinite disponibili nell'area di sicurezza FullTrust.

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

Vedere anche

Riferimenti

Manifesto dell'applicazione ClickOnce

Concetti

Cenni preliminari sulla distribuzione di applicazioni attendibili