<trustInfo>-Element (ClickOnce-Anwendung)

Beschreibt die minimalen Sicherheitsberechtigungen, die für die Ausführung der Anwendung auf dem Clientcomputer erforderlich sind.

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

Elemente und Attribute

Das trustInfo-Element ist erforderlich und befindet sich im asm.v2-Namespace. Es weist keine Attribute auf und enthält die folgenden Elemente.

security

Erforderlich. Dieses Element ist ein untergeordnetes Element des trustInfo-Elements. Es enthält das applicationRequestMinimum-Element und weist keine Attribute auf.

applicationRequestMinimum

Erforderlich. Dieses Element ist ein untergeordnetes Element des security-Elements und enthält die Elemente PermissionSet, assemblyRequest und defaultAssemblyRequest. Dieses Element weist keine Attribute auf.

PermissionSet

Erforderlich. Dieses Element ist ein untergeordnetes Element des applicationRequestMinimum-Elements und enthält das IPermission-Element. Dieses Element verfügt über die folgenden Attribute.

Attribute

Beschreibungen

ID

Erforderlich. Identifiziert den Berechtigungssatz. Dieses Attribut kann einen beliebigen Wert aufweisen. Auf die ID wird im defaultAssemblyRequest-Attribut und im assemblyRequest-Attribut verwiesen.

version

Erforderlich. Identifiziert die Version der Berechtigung. Normalerweise lautet dieser Wert 1.

IPermission

Optional. Dieses Element ist ein untergeordnetes Element des PermissionSet-Elements. Das IPermission-Element enthält eine vollständige Identifizierung einer Berechtigungsklasse in .NET Framework. Das IPermission-Element verfügt über die folgenden Attribute, es kann jedoch über zusätzliche Attribute verfügen, die Eigenschaften der Berechtigungsklasse entsprechen. Die Syntax für eine bestimmte Berechtigung können Sie den in der Datei Security.config aufgeführten Beispielen entnehmen.

Attribute

Beschreibungen

class

Erforderlich. Identifiziert die Berechtigungsklasse anhand des starken Namens. Im folgenden Code wird z. B. der FileDialogPermission-Typ identifiziert.

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

version

Erforderlich. Identifiziert die Version der Berechtigung. Normalerweise lautet dieser Wert 1.

Unrestricted

Erforderlich. Gibt an, ob die Anwendung diese Berechtigung uneingeschränkt benötigt. Wenn der Wert true lautet, wird die Berechtigung bedingungslos gewährt. Lautet der Wert false oder ist dieses Attribut nicht definiert, wird die Berechtigung entsprechend den im IPermission-Tag definierten berechtigungsspezifischen Attributen beschränkt gewährt. Angenommen, es sind folgende Berechtigungen vorhanden:

<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 diesem Beispiel wird durch die Deklaration für EnvironmentPermission festgelegt, dass die Anwendung nur die Umgebungsvariable USERNAME lesen kann, wohingegen die Anwendung durch die Deklaration für FileDialogPermission die uneingeschränkte Berechtigung erhält, alle FileDialog-Klassen zu verwenden.

defaultAssemblyRequest   

Optional. Identifiziert die Berechtigungen, die allen Assemblys gewährt werden. Dieses Element ist ein untergeordnetes Element des applicationRequestMinimum-Elements und verfügt über die folgenden Attribute.

Attribute

Beschreibungen

permissionSetReference

Erforderlich. Identifiziert die ID des Berechtigungssatzes, der als Standardberechtigung definiert ist. Der Berechtigungssatz wird im PermissionSet-Element deklariert.

assemblyRequest   

Optional. Identifiziert Berechtigungen für eine bestimmte Assembly. Dieses Element ist ein untergeordnetes Element des applicationRequestMinimum-Elements und verfügt über die folgenden Attribute.

Attribute

Beschreibungen

Name

Erforderlich. Identifiziert den Assemblynamen.

permissionSetReference

Erforderlich. Identifiziert die ID des für diese Assembly erforderlichen Berechtigungssatzes. Der Berechtigungssatz wird im PermissionSet-Element deklariert.

requestedPrivileges

Optional. Dieses Element ist ein untergeordnetes Element des security-Elements und enthält das requestedExecutionLevel-Element. Dieses Element weist keine Attribute auf.

requestedExecutionLevel

Optional. Identifiziert die Sicherheitsstufe, auf der die Anwendung ausgeführt werden soll. Dieses Element weist keine untergeordneten Elemente auf und verfügt über folgende Attribute.

Attribute

Beschreibungen

Level

Erforderlich. Gibt die Sicherheitsstufe an, die die Anwendung anfordert. Mögliche Werte lauten:

asInvoker, wobei keine zusätzlichen Berechtigungen angefordert werden. Diese Stufe erfordert keine zusätzlichen Vertrauenswürdigkeits-Eingabeaufforderungen.

highestAvailable, wobei die höchsten Berechtigungen angefordert werden, die für den übergeordneten Prozess zur Verfügung stehen.

requireAdministrator, wobei vollständige Administratorberechtigungen erforderlich sind.

ClickOnce-Anwendungen werden nur beim Wert asInvoker installiert. Bei einem anderen Wert schlägt die Installation fehl.

uiAccess

Optional. Gibt an, ob die Anwendung Zugriff auf geschützte Benutzeroberflächenelemente erfordert. Werte sind entweder true oder false, und der Standardwert ist false. Nur signierte Anwendungen sollten den Wert true haben.

Hinweise

Wenn eine ClickOnce-Anwendung umfangreichere Berechtigungen anfordert als der Clientcomputer standardmäßig gewährt, fragt der Trust-Manager der Common Language Runtime den Benutzer, ob der Anwendung diese höhere Vertrauensebene gewährt werden soll. Lehnt der Benutzer dies ab, wird die Anwendung nicht ausgeführt. Andernfalls wird sie mit den angeforderten Berechtigungen ausgeführt.

Wenn das Bereitstellungsmanifest eine gültige Vertrauenslizenz enthält, werden alle mit defaultAssemblyRequest und assemblyRequest angeforderten Berechtigungen ohne Eingabeaufforderung an den Benutzer gewährt.

Weitere Informationen zur Berechtigungserweiterung finden Sie unter Sichern von ClickOnce-Anwendungen. Weitere Informationen zur Richtlinienbereitstellung finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.

Beispiele

Die folgenden drei Codebeispiele veranschaulichen trustInfo-Elemente für die Sicherheitszonen mit den Standardnamen Internet, LocalIntranet und FullTrust zur Verwendung im Anwendungsmanifest einer ClickOnce-Bereitstellung.

Im ersten Beispiel wird das trustInfo-Element für die in der Sicherheitszone Internet verfügbaren Standardberechtigungen veranschaulicht.

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

Im zweiten Beispiel wird das trustInfo-Element für die in der Sicherheitszone LocalIntranet verfügbaren Standardberechtigungen veranschaulicht.

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

Im dritten Beispiel wird das trustInfo-Element für die in der Sicherheitszone FullTrust verfügbaren Standardberechtigungen veranschaulicht.

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

Siehe auch

Referenz

ClickOnce-Anwendungsmanifest

Konzepte

Überblick über die Bereitstellung vertrauenswürdiger Anwendungen