<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:
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
Konzepte
Überblick über die Bereitstellung vertrauenswürdiger Anwendungen