Элемент <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
. Примите следующие разрешения:<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" />
В этом примере объявление для 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". Дополнительные сведения о развертывании политик см. в статье Trusted Application Deployment Overview.
Примеры
В следующих трех примерах кода показаны 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>