<trustInfo> , element (aplikacja ClickOnce)
Opisuje minimalne uprawnienia zabezpieczeń wymagane do działania aplikacji na komputerze klienckim.
Składnia
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet
ID
Unrestricted>
<IPermission
class
version
Unrestricted
/>
</PermissionSet>
<defaultAssemblyRequest
permissionSetReference
/>
<assemblyRequest
name
permissionSetReference
/>
</applicationRequestMinimum>
<requestedPrivileges>
<requestedExecutionLevel
level
uiAccess
/>
</requestedPrivileges>
</security>
</trustInfo>
Elementy i atrybuty
Element trustInfo
jest wymagany i znajduje się w asm.v2
przestrzeni nazw. Nie ma atrybutów i zawiera następujące elementy.
security
Wymagany. Ten element jest elementem podrzędnym trustInfo
elementu. Zawiera element applicationRequestMinimum
i nie ma atrybutów.
applicationRequestMinimum
Wymagany. Ten element jest elementem podrzędnym security
elementu i zawiera PermissionSet
elementy , assemblyRequest
i defaultAssemblyRequest
. Ten element nie ma atrybutów.
Zestaw uprawnień
Wymagany. Ten element jest elementem podrzędnym applicationRequestMinimum
elementu i zawiera IPermission
element . Ten element ma następujące atrybuty.
ID
Wymagany. Identyfikuje zestaw uprawnień. Ten atrybut może być dowolną wartością. Identyfikator jest przywołyny w atrybutach
defaultAssemblyRequest
iassemblyRequest
.version
Wymagany. Identyfikuje wersję uprawnienia. Zwykle ta wartość to
1
.
IPermission
Opcjonalny. Ten element jest elementem podrzędnym PermissionSet
elementu. Element IPermission
w pełni identyfikuje klasę uprawnień w programie .NET Framework. Element IPermission
ma następujące atrybuty, ale może mieć dodatkowe atrybuty, które odpowiadają właściwościom klasy uprawnień. Aby dowiedzieć się, jak poznać składnię określonego uprawnienia, zobacz przykłady wymienione w pliku Security.config.
class
Wymagany. Identyfikuje klasę uprawnień według silnej nazwy. Na przykład poniższy kod identyfikuje
FileDialogPermission
typ.System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
version
Wymagany. Identyfikuje wersję uprawnienia. Zazwyczaj ta wartość to
1
.Unrestricted
Wymagany. Określa, czy aplikacja wymaga nieograniczonego udzielenia tego uprawnienia. Jeśli
true
, przyznanie uprawnień jest bezwarunkowe. Jeślifalse
parametr lub ten atrybut jest niezdefiniowany, jest ograniczony zgodnie z atrybutami specyficznymi dla uprawnień zdefiniowanymi na taguIPermission
. Wykonaj następujące uprawnienia:<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" />
W tym przykładzie deklaracja ogranicza EnvironmentPermission aplikację do odczytywania tylko zmiennej środowiskowej USERNAME, podczas gdy deklaracja dla FileDialogPermission daje aplikacji nieograniczone użycie wszystkich FileDialog klas.
defaultAssemblyRequest
Opcjonalny. Określa zestaw uprawnień przyznanych wszystkim zestawom. Ten element jest elementem podrzędnym applicationRequestMinimum
elementu i ma następujący atrybut.
permissionSetReference
Wymagany. Określa identyfikator zestawu uprawnień, który jest uprawnieniem domyślnym. Zestaw uprawnień jest zadeklarowany w elemecie
PermissionSet
.
assemblyRequest
Opcjonalny. Identyfikuje uprawnienia dla określonego zestawu. Ten element jest elementem podrzędnym applicationRequestMinimum
elementu i ma następujące atrybuty.
Name
Wymagany. Identyfikuje nazwę zestawu.
permissionSetReference
Wymagany. Określa identyfikator zestawu uprawnień wymaganego przez ten zestaw. Zestaw uprawnień jest zadeklarowany w elemecie
PermissionSet
.
requestedPrivileges
Opcjonalny. Ten element jest elementem podrzędnym security
elementu i zawiera requestedExecutionLevel
element . Ten element nie ma atrybutów.
requestedExecutionLevel
Opcjonalny. Określa poziom zabezpieczeń, na którym aplikacja żąda wykonania. Ten element nie ma elementów podrzędnych i ma następujące atrybuty.
Level
Wymagany. Wskazuje poziom zabezpieczeń, którego żąda aplikacja. Dopuszczalne wartości:
asInvoker
, żądając żadnych dodatkowych uprawnień. Ten poziom nie wymaga dodatkowych monitów o zaufanie.highestAvailable
, żądanie najwyższych uprawnień dostępnych w procesie nadrzędnym.requireAdministrator
, żądając pełnych uprawnień administratora.Aplikacje ClickOnce będą instalowane tylko z wartością
asInvoker
. Instalacja z dowolną inną wartością zakończy się niepowodzeniem.uiAccess
Opcjonalny. Wskazuje, czy aplikacja wymaga dostępu do chronionych elementów interfejsu użytkownika. Wartości to
true
lubfalse
, a wartość domyślna to false. Tylko podpisane aplikacje powinny mieć wartość true.
Uwagi
Jeśli aplikacja ClickOnce prosi o więcej uprawnień niż komputer kliencki domyślnie przyzna, menedżer zaufania środowiska uruchomieniowego języka wspólnego zapyta użytkownika, czy chce przyznać aplikacji ten podwyższony poziom zaufania. Jeśli nie mówi, aplikacja nie zostanie uruchomiona; w przeciwnym razie zostanie uruchomiony z żądanymi uprawnieniami.
Wszystkie uprawnienia żądane przy użyciu defaultAssemblyRequest
polecenia i assemblyRequest
zostaną przyznane bez monitowania użytkownika, jeśli manifest wdrożenia ma prawidłową licencję zaufania.
Aby uzyskać więcej informacji na temat podniesienia uprawnień, zobacz Zabezpieczanie aplikacji ClickOnce. Aby uzyskać więcej informacji na temat wdrażania zasad, zobacz Omówienie wdrażania zaufanych aplikacji.
Przykłady
Poniższe trzy przykłady kodu ilustrują trustInfo
elementy domyślne nazwanych stref zabezpieczeń — Internet, LocalIntranet i FullTrust — do użycia w manifeście aplikacji wdrożenia ClickOnce.
Pierwszy przykład ilustruje trustInfo
element domyślnych uprawnień dostępnych w strefie zabezpieczeń Internetu.
<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>
Drugi przykład ilustruje trustInfo
element domyślnych uprawnień dostępnych w strefie zabezpieczeń 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>
Trzeci przykład ilustruje trustInfo
element domyślnych uprawnień dostępnych w strefie zabezpieczeń FullTrust.
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet ID="FullTrust" Unrestricted="true" />
<defaultAssemblyRequest permissionSetReference="FullTrust" />
</applicationRequestMinimum>
</security>
</trustInfo>