<trustInfo>-Element (ClickOnce-Anwendung)
Beschreibt die Mindestsicherheitsberechtigungen, die zum Ausführen der Anwendung auf dem Clientcomputer erforderlich sind.
Syntax
<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 besitzt keine Attribute und enthält die folgenden Elemente.
security
Erforderlich. Dieses Element ist ein untergeordnetes Element des trustInfo
-Elements. Es enthält das applicationRequestMinimum
-Element und besitzt keine Attribute.
applicationRequestMinimum
Erforderlich. Dieses Element ist ein untergeordnetes Element des security
Elements und enthält die PermissionSet
, assemblyRequest
und defaultAssemblyRequest
die Elemente. 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 weist folgende Attribute auf.
ID
Erforderlich. Bezeichnet den Berechtigungssatz. Dieses Attribut kann beliebige Werte annehmen. Auf die ID wird in den Attributen
defaultAssemblyRequest
undassemblyRequest
verwiesen.version
Erforderlich. Bezeichnet die Version der Berechtigung. Normalerweise ist dieser Wert
1
.
IPermission
Optional. Dieses Element ist ein untergeordnetes Element des PermissionSet
-Elements. Das IPermission
-Element identifiziert eine Berechtigungsklasse in .NET Framework vollständig. Das IPermission
-Element besitzt die folgenden Attribute, kann aber zusätzliche Attribute aufweisen, die den Eigenschaften der Berechtigungsklasse entsprechen. In der Security.config-Datei finden Sie Beispiele, mit denen Sie die Syntax einer bestimmten Berechtigung ermitteln können.
class
Erforderlich. Bezeichnet die Berechtigungsklasse mit einem starken Namen. Beispielsweise identifiziert der folgende Code den Typ
FileDialogPermission
.System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
version
Erforderlich. Bezeichnet die Version der Berechtigung. Normalerweise ist dieser Wert
1
.Unrestricted
Erforderlich. Bestimmt, ob für die Anwendung eine unbeschränkte Erteilung dieser Berechtigung erforderlich ist. Bei
true
ist die Erteilung der Berechtigung ohne Bedingungen. Beifalse
oder nicht definiertem Attribut erfolgt die Erteilung gemäß den berechtigungsspezifischen Attributen, die imIPermission
-Tag definiert sind. Betrachten wir die folgenden Berechtigungen:<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 schränkt die Deklaration für EnvironmentPermission die Anwendung auf das ausschließliche Lesen der Umgebungsvariablen USERNAME ein, während die Deklaration für FileDialogPermission der Anwendung die uneingeschränkte Verwendung aller FileDialog -Klassen erlaubt.
defaultAssemblyRequest
Optional. Bezeichnet den allen Assemblys erteilten Berechtigungssatz. Dieses Element ist ein untergeordnetes Element des applicationRequestMinimum
-Elements und weist folgende Attribute auf.
permissionSetReference
Erforderlich. Bezeichnet die ID des Berechtigungssatzes, der die Standardberechtigung bildet. Der Berechtigungssatz wird im
PermissionSet
-Element deklariert.
assemblyRequest
Optional. Bezeichnet die Berechtigungen für eine bestimmte Assembly. Dieses Element ist ein untergeordnetes Element des applicationRequestMinimum
-Elements und weist folgende Attribute auf.
Name
Erforderlich. Bezeichnet den Assemblynamen.
permissionSetReference
Erforderlich. Bezeichnet die ID des Berechtigungssatzes, der für diese Assembly erforderlich ist. 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. Bezeichnet die Sicherheitsstufe, die von der Anwendung für die Ausführung angefordert wird. Dieses Element hat keine untergeordneten Elemente und weist folgende Attribute auf.
Level
Erforderlich. Bezeichnet die Sicherheitsstufe, die von der Anwendung angefordert wird. Dabei sind folgende Werte möglich:
asInvoker
, es werden keine zusätzlichen Berechtigungsstufen angefordert. Für diese Stufe sind keine zusätzlichen Eingaben für die Vertrauensstellung erforderlich.highestAvailable
, es werden die höchsten für den übergeordneten Prozess verfügbaren Berechtigungen angefordert.requireAdministrator
, es werden vollständige Administratorberechtigungen angefordert.ClickOnce-Anwendungen können nur mit dem Wert
asInvoker
installiert werden. Bei der Installation mit anderen Werten tritt ein Fehler auf.uiAccess
Optional. Gibt an, ob die Anwendung Zugriff auf geschützte Elemente der Benutzeroberfläche benötigt. Die Werte sind
true
undfalse
, und der Standardwert ist „false“. Nur signierte Anwendungen sollten den Wert „true“ haben.
Bemerkungen
Fordert eine ClickOnce-Anwendung mehr Berechtigungen an, als der Clientcomputer standardmäßig erteilt, fragt der Trust-Manager der Common Language Runtime bei den Benutzer*innen nach, ob sie der Anwendung die höhere Vertrauensebene erteilen möchten. Wenn er ablehnt, wird die Anwendung nicht ausgeführt; andernfalls wird sie mit den angeforderten Berechtigungen ausgeführt.
Alle mithilfe von defaultAssemblyRequest
und assemblyRequest
angeforderten Berechtigungen werden ohne Nachfrage beim Benutzer erteilt, wenn das Bereitstellungsmanifest eine gültige Vertrauenslizenz aufweist.
Weitere Informationen zur Berechtigungserweiterung finden Sie unter Sichern von ClickOnce-Anwendungen. Weitere Informationen zur Bereitstellung von Richtlinien finden Sie unter Trusted Application Deployment Overview.
Beispiele
Die folgenden drei Codebeispiele veranschaulichen trustInfo
-Elemente für die genannten Standardsicherheitszonen („Internet“, „LocalIntranet“ und „FullTrust“) für die Verwendung im Anwendungsmanifest einer ClickOnce-Bereitstellung.
Das erste Beispiel zeigt das trustInfo
-Element für die in der Sicherheitszone „Internet“ verfügbaren Standardberechtigungen.
<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>
Das zweite Beispiel zeigt das trustInfo
-Element für die in der Sicherheitszone „Lokales Intranet“ verfügbaren Standardberechtigungen.
<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>
Das dritte Beispiel zeigt das trustInfo
-Element für die in der Sicherheitszone „Vertrauenswürdige Sites“ verfügbaren Standardberechtigungen.
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet ID="FullTrust" Unrestricted="true" />
<defaultAssemblyRequest permissionSetReference="FullTrust" />
</applicationRequestMinimum>
</security>
</trustInfo>