<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 命名空間中。 它沒有屬性,並且含有下列項目。
安全性
必要項。 這個項目是 trustInfo 項目的子系。 它含有 applicationRequestMinimum 項目,並且沒有屬性。
applicationRequestMinimum
必要項。 這個項目是 security 項目的子項目,並且含有 PermissionSet、assemblyRequest 和 defaultAssemblyRequest項目。 此項目沒有任何屬性。
PermissionSet
必要項。 這個項目是 applicationRequestMinimum 項目的子系,並含有 IPermission 項目。 此項目具有下列屬性。
屬性 |
描述 |
---|---|
ID |
必要項。 識別使用權限集合。 這個屬性可以是任何值。 defaultAssemblyRequest 和 assemblyRequest 屬性都會參考 ID。 |
version |
必要項。 識別使用權限的版本。 此值通常為 1。 |
IPermission
選擇項。 這個項目是 PermissionSet 項目的子系。 IPermission 項目會完整識別 .NET Framework 中的使用權限類別。 IPermission 項目具有下列屬性 (Attribute),不過也可以具有其他屬性以對應到使用權限類別上的屬性 (Property)。 若要尋找特定使用權限的語法,請參閱 Security.config 檔中列出的範例。
屬性 |
描述 |
---|---|
class |
必要項。 依據強式名稱 (Strong Name) 來識別使用權限類別。 例如,下列程式碼識別 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 應用程式所要求的使用權限多於用戶端電腦根據預設所授與的使用權限,Common Language Runtime 的信任管理員將會詢問使用者是否要授與應用程式這種提升的信任層級。 如果使用者選擇否,應用程式就不會執行,否則,應用程式將會以要求的使用權限來執行。
如果部署資訊清單具備有效的信任授權,便會授與使用 defaultAssemblyRequest 和 assemblyRequest 所要求的所有使用權限,而不需要提示使用者。
如需使用權限提升的詳細資訊,請參閱 保護 ClickOnce 應用程式。 如需原則部署的詳細資訊,請參閱受信任的應用程式部署概觀。
範例
在下列三個程式碼範例中,說明了預設具名安全性區域 (網際網路、近端內部網路和完全信任) 的 trustInfo 項目 (在 ClickOnce 部署的應用程式資訊清單中加以使用)。
第一個範例說明網際網路安全性區域中可用的預設使用權限之 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>
第二個範例說明近端內部網路安全性區域中可用的預設使用權限之 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>
第三個範例說明完全信任安全性區域中可用的預設使用權限之 trustInfo 項目。
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet ID="FullTrust" Unrestricted="true" />
<defaultAssemblyRequest permissionSetReference="FullTrust" />
</applicationRequestMinimum>
</security>
</trustInfo>