描述应用程序在客户端计算机上运行至少所需的安全权限。
<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 命名空间中。该元素没有特性,但包含下列元素。
安全性
必选。此元素是 trustInfo 元素的子元素。它包含 applicationRequestMinimum 元素,但没有特性。
applicationRequestMinimum
必选。此元素是 security 元素的子元素,它包含 PermissionSet、assemblyRequest 和 defaultAssemblyRequest 元素。此元素没有特性。
PermissionSet
必选。此元素是 applicationRequestMinimum 元素的子元素,它包含 IPermission 元素。此元素具有下列特性。
| 特性 | 说明 | 
|---|---|
| ID | 必选。标识权限集。此特性可以是任意值。defaultAssemblyRequest 和 assemblyRequest 特性引用此 ID。 | 
| 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 | 必选。标识属于默认权限的权限集的 ID。权限集在 PermissionSet 元素中声明。 | 
assemblyRequest
可选。标识特定程序集的权限。此元素是 applicationRequestMinimum 元素的子元素,它具有下列特性。
| 特性 | 说明 | 
|---|---|
| Name | 必选。标识程序集名称。 | 
| permissionSetReference | 必选。标识此程序集所需的权限集的 ID。权限集在 PermissionSet 元素中声明。 | 
requestedPrivileges
可选。此元素是 security 元素的子元素,它包含 requestedExecutionLevel 元素。此元素没有特性。
requestedExecutionLevel
可选。标识将要执行应用程序请求的安全级别。此元素不包含子元素,并具有下列特性。
| 特性 | 说明 | 
|---|---|
| Level | 必选。指示应用程序正在请求的安全级别。可能的值包括: asInvoker,不请求任何附加权限。此级别不需要任何额外的信任提示。 highestAvailable,请求可用于父进程的最高权限。 requireAdministrator,请求完全管理员权限 ClickOnce 应用程序将只能使用 asInvoker 值安装。使用任何其他值安装将会失败。 | 
| uiAccess | 可选。指示应用程序是否需要对受保护用户界面元素的访问权限。值为 true 或 false,默认值为 false。只有经过签名的应用程序才应具有 true 值。 | 
备注
如果 ClickOnce 应用程序要求的权限超过客户端计算机默认情况下授予的权限,公共语言运行时的信任关系管理器将会询问用户,是否授予该应用程序这种提升的信任级别。如果回答否,将不会运行该应用程序;否则,将使用请求的权限运行该应用程序。
如果部署清单具有有效的信任许可证,将在不出现用户提示的情况下,授予使用 defaultAssemblyRequest 和 assemblyRequest 请求的所有权限。
有关权限提升的更多信息,请参见 保护 ClickOnce 应用程序。有关策略部署的更多信息,请参见 受信任的应用程序部署概述。
示例
下面的三个代码示例阐释默认命名安全区域(Internet、LocalIntranet 和 FullTrust)的 trustInfo 元素,这些元素在 ClickOnce 部署的应用程序清单中使用。
第一个示例阐释 Internet 安全区域中可用的默认权限的 trustInfo 元素。
<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>
第二个示例阐释 LocalIntranet 安全区域中可用的默认权限的 trustInfo 元素。
<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>
第三个示例阐释 FullTrust 安全区域中可用的默认权限的 trustInfo 元素。
<trustInfo>
  <security>
    <applicationRequestMinimum>
      <PermissionSet ID="FullTrust" Unrestricted="true" />
      <defaultAssemblyRequest permissionSetReference="FullTrust" />
    </applicationRequestMinimum>
  </security>
</trustInfo>