Элемент <trustInfo> (приложение ClickOnce)
Описание минимальных разрешений безопасности, необходимых для работы приложения на клиентском компьютере.
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet
ID
Unrestricted>
<IPermission
class
version
Unrestricted
/>
</PermissionSet>
<defaultAssemblyRequest
permissionSetReference
/>
<assemblyRequest
name
permissionSetReference
/>
</applicationRequestMinimum>
<requestedPrivileges>
<requestedExecutionLevel
level
uiAccess
/>
</requestedPrivileges>
</security>
</trustInfo>
Элементы и атрибуты
Элемент trustInfo является обязательным и находится в пространстве имен asm.v2. Он не содержит атрибутов и включает следующие элементы.
security
Обязательный. Этот элемент является дочерним для элемента trustInfo. Он включает элемент applicationRequestMinimum и не содержит атрибутов.
applicationRequestMinimum
Обязательный. Этот элемент является дочерним для элемента security и содержит элементы PermissionSet, assemblyRequest и defaultAssemblyRequest. Этот элемент не имеет атрибутов.
PermissionSet
Обязательный. Этот элемент является дочерним для элемента applicationRequestMinimum и содержит элемент IPermission. Этот элемент имеет следующие атрибуты.
Атрибут |
Описание |
---|---|
ID |
Обязательный. Определение набора разрешений. Этот атрибут может иметь любое значение. На этот идентификатор ссылаются атрибуты defaultAssemblyRequest и assemblyRequest. |
version |
Обязательный. Определение версии разрешения. Значением по умолчанию является 1. |
IPermission
Необязательный. Этот элемент является дочерним для элемента PermissionSet. Элемент IPermission полностью определяет класс разрешений в .NET Framework. Элемент IPermission имеет следующие атрибуты, но может иметь дополнительные атрибуты, соответствующие классу разрешений. Чтобы узнать синтаксис определенного разрешения, см. примеры в файле Security.config.
Атрибут |
Описание |
---|---|
class |
Обязательный. Определение класса разрешений с помощью строгого имени. Например, следующий код определяет тип FileDialogPermission. System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 |
version |
Обязательный. Определение версии разрешения. Значением по умолчанию является 1. |
Unrestricted |
Обязательный. Определение того, требуется ли приложению выдача данного разрешения без каких-либо ограничений. Если присвоено значение true, то разрешение выдается без каких-либо условий. Если присвоено значение false или атрибут не задан, для него действуют ограничения в соответствии с атрибутами, связанными с разрешением и заданными в теге IPermission. Доступны следующие разрешения:
В данном примере объявление класса EnvironmentPermission права приложения ограничиваются только чтением переменной среды USERNAME, а декларация класса FileDialogPermission предоставляет приложению неограниченные права на использование всех классов FileDialog. |
defaultAssemblyRequest
Необязательный. Определение набора разрешений, назначенного всем сборкам. Этот элемент является дочерним по отношению к элементу applicationRequestMinimum и имеет следующие атрибуты.
Атрибут |
Описание |
---|---|
permissionSetReference |
Обязательный. Определение идентификатора набора разрешений по умолчанию. Набор разрешений объявляется в элементе PermissionSet. |
assemblyRequest
Необязательный. Определение разрешений для конкретной сборки. Этот элемент является дочерним по отношению к элементу applicationRequestMinimum и имеет следующие атрибуты.
Атрибут |
Описание |
---|---|
Name |
Обязательный. Определение имени сборки. |
permissionSetReference |
Обязательный. Определение идентификатора набора разрешений, необходимого для данной сборки. Набор разрешений объявляется в элементе PermissionSet. |
requestedPrivileges
Необязательный. Этот элемент является дочерним для элемента security и содержит элемент requestedExecutionLevel. Этот элемент не имеет атрибутов.
requestedExecutionLevel
Необязательный. Определение уровня безопасности, необходимого для выполнения приложения. Этот элемент не имеет дочерних элементов и имеет следующие атрибуты.
Атрибут |
Описание |
---|---|
Level |
Обязательный. Указание уровня безопасности, запрашиваемого приложением. Доступны следующие значения: asInvoker — дополнительные разрешения не запрашиваются. Этот уровень не требует дополнительных запросов о доверии. highestAvailable — запрашиваются самые полные разрешения, доступные для родительского процесса. requireAdministrator — запрашиваются полные права администратора. Установка приложений ClickOnce возможна только при значении asInvoker. При любом другом значении установка будет невозможна. |
uiAccess |
Необязательный. Указание того, требует ли приложение доступ к защищенным элементам пользовательского интерфейса. Доступны значения true и false, по умолчанию используется значение "false". Значение "true" должны иметь только подписанные приложения. |
Заметки
Если приложение ClickOnce запрашивает какие-либо разрешения дополнительно к набору разрешений, предоставляемому клиентским компьютером по умолчанию, диспетчер доверия среды CLR отправляет пользователю запрос на предоставления приложению указанного повышенного уровня доверия. Если пользователь отвечает отрицательно, приложение запущено не будет; в противном случае оно запускается с запрошенными разрешениями.
Все разрешения, запрошенные с помощью элементов defaultAssemblyRequest и assemblyRequest, назначаются без отправки запроса пользователю, если манифест развертывания имеет действительную лицензию доверия.
Дополнительные сведения о повышении уровня разрешений см. в разделе Защита приложений ClickOnce. Дополнительные сведения о развертывании политики см. в разделе Общие сведения о развертывании доверенных приложений.
Примеры
В трех следующих примерах кода демонстрируются элементы trustInfo для зон безопасности по умолчанию "Internet", "LocalIntranet" и "FullTrust", которые можно использовать в манифесте приложения для развертывания ClickOnce.
В первом примере демонстрируется элемент trustInfo для разрешений по умолчанию, доступных в зоне безопасности "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>
Во втором примере демонстрируется элемент trustInfo для разрешений по умолчанию, доступных в зоне безопасности "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>
В третьем примере демонстрируется элемент trustInfo для разрешений по умолчанию, доступных в зоне безопасности "FullTrust".
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet ID="FullTrust" Unrestricted="true" />
<defaultAssemblyRequest permissionSetReference="FullTrust" />
</applicationRequestMinimum>
</security>
</trustInfo>