Поделиться через


Элемент <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. Дополнительные сведения о развертывании политики см. в разделе Общие сведения о развертывании доверенных приложений.

Примеры

В трех следующих примерах кода демонстрируются элементы 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>

См. также

Ссылки

Манифест приложения ClickOnce

Основные понятия

Общие сведения о развертывании доверенных приложений