<trustInfo> Öğesi (ClickOnce Uygulaması)
Uygulamanın istemci bilgisayarda çalışması için gereken en düşük güvenlik izinlerini açıklar.
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet
ID
Unrestricted>
<IPermission
class
version
Unrestricted
/>
</PermissionSet>
<defaultAssemblyRequest
permissionSetReference
/>
<assemblyRequest
name
permissionSetReference
/>
</applicationRequestMinimum>
<requestedPrivileges>
<requestedExecutionLevel
level
uiAccess
/>
</requestedPrivileges>
</security>
</trustInfo>
Öğeler ve Öznitelikler
trustInfo öğesi gereklidir ve asm.v2 isim uzayında yer almaktadır. Alt öğeleri yoktur ve aşağıdaki özniteliklere sahiptir.
güvenlik
Gerekli. Bu öğe trustInfo öğesinin alt öğesidir. applicationRequestMinimum öğesini içeriyor ve öznitelikleri yoktur.
applicationRequestMinimum
Gerekli. Bu öğe security öğesinin alt öğesidir ve PermissionSet, assemblyRequest, defaultAssemblyRequest öğelerini içerir Bu öğe özniteliklere sahip değildir.
PermissionSet
Gerekli. Bu öğe applicationRequestMinimum öğesinin alt öğesidir ve IPermission öğesini içerir. Bu öğenin öznitelikleri şunlardır:
Öznitelik |
Description |
---|---|
ID |
Gerekli. İzin kümesi tanımlar. Bu öznitelik herhangi bir değer olabilir. Bu kimliğe defaultAssemblyRequest ve assemblyRequest öznitelikleri içinde başvurulur. |
version |
Gerekli. İzin sürümünü tanımlar. Bu değer normalde 1 olur. |
IPermission
İsteğe Bağlı. Bu öğe PermissionSet öğesinin alt öğesidir. The IPermission öğesi .NET Framework içinde izin sınıfını tam olarak tanımlar. IPermission öğesi aşağıdaki özniteliklere sahiptir ama izin sınıfından özelliklere karşılık gelen ek öznitelikler de olabilir. Belirli bir iznin sözdizimini öğrenmek için Security.config dosyasında listelenen örneklere bakın.
Öznitelik |
Description |
---|---|
class |
Gerekli. İzin sınıfını tanımlayıcı adıyla belirtir. Örneğin, aşağıdaki kod FileDialogPermission türünü tanımlar. System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 |
version |
Gerekli. İzin sürümünü tanımlar. Bu değer genellikle 1 olur. |
Unrestricted |
Gerekli. Uygulamanın sınırsız olarak bu iznin verilmesine ihtiyacı olup olmadığını tanımlar. true ise, izin verme koşulsuz olur. false ise, veya bu öznitelik tanımlı değilse, IPermission etiketinden tanımlanan izne özel özniteliklere göre sınırlama yapılır. Aşağıdaki izinleri alın:
Bu örnekte,EnvironmentPermission bildirimi uygulamayı sadece ortam değişkeni USERNAME'i okumaya sınırlarken, diğer tarafta FileDialogPermission bildirimi tüm FileDialog sınıfları için sınırsız kullanım verir . |
defaultAssemblyRequest
İsteğe Bağlı. Tüm derlemelere verilen izinler kümesini tanımlar. Bu öğe applicationRequestMinimum öğesinin alt öğesidir ve aşağıdaki özniteliklere sahiptir.
Öznitelik |
Description |
---|---|
permissionSetReference |
Gerekli. Varsayılan izin olan izin kümesi kimliğini tanımlar. İzin kümesi PermissionSet öğesi içinde bildirilir. |
assemblyRequest
İsteğe Bağlı. Belirli bir derleme için izinleri tanımlar. Bu öğe applicationRequestMinimum öğesinin alt öğesidir ve aşağıdaki özniteliklere sahiptir.
Öznitelik |
Description |
---|---|
Name |
Gerekli. Derleme adını tanımlar. |
permissionSetReference |
Gerekli. Bu derlemenin ihtiyaç duyduğu iznin kimliğini tanımlar. İzin kümesi PermissionSet öğesi içinde bildirilir. |
requestedPrivileges
İsteğe Bağlı. Bu öğe security öğesinin alt öğesidir ve requestedExecutionLevel öğesini içerir. Bu öğe özniteliklere sahip değildir.
requestedExecutionLevel
İsteğe Bağlı. Uygulama isteklerinin yürütüleceği güvenlik düzeyini tanımlar. Alt öğeleri yoktur ve aşağıdaki özniteliklere sahiptir.
Öznitelik |
Description |
---|---|
Level |
Gerekli. Uygulamanın istediği güvenlik düzeyini tanımlar. Olası değerler şunlardır: asInvoker, ek izinler istenmez. Bu düzey ek güven istekleri gerektirmez. highestAvailable, üst sürece erişlebilir en yüksek izinler istenir. requireAdministrator, tam yönetici izinleri istenir. ClickOnce uygulamaları yalnızca asInvoker'ın bir değeri ile yüklenecektir. Diğer değerler ile yüklemeler başarısız olacaktır. |
uiAccess |
İsteğe Bağlı. Uygulamanın korumalı kullanıcı arayüzü öğelerine erişiminin gerekli olup olmadığını gösterir. Değer true veya false'tur. Varsayılan değer false'tur. Yalnızca imzalı uygulamalar true değeri olmalıdır. |
Notlar
ClickOnce uygulaması varsayılan olarak istemci bilgisayarın vereceği izinlerden daha fazla izin isterse, ortak dil çalışma zamanının Güven Yöneticisi kullanıcıya, uygulamaya yükseltilmiş izinlerin verilmesini isteyip istemediğini sorar. Kullanıcı hayır derse, uygulama çalışmayacak; tersi durumda, istenen izinlerle çalışacaktır.
Dağıtım bildiriminin geçerli bir Güven Lisansı varsa, defaultAssemblyRequest ve assemblyRequest kullanılarak istenilen tüm izinler kullanıcıya sorulmadan verilecektir.
İzin Yükseltme hakkında daha fazla bilgi için, bkz. ClickOnce Uygulamaları Güvenliğini Sağlama. Dağıtım ilkesi hakkında daha fazla bilgi için, bkz. Güvenilir Uygulama Dağıtımına Genel Bakış.
Örnekler
Aşağıdaki üç kod örneği ClickOnce dağıtımının uygulama bildiriminde kullanımını sağlayan ve varsayılan olarak adlandırılan güvenlik bölgeleri için (Internet, LocalIntranet ve FullTrust) trustInfo öğelerini gösterir.
İlk örnek İnternet güvenlik bölgesinde erişilebilir varsayılan izinler için trustInfo öğesini gösterir.
<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>
İkinci örnek LocalIntranet güvenlik bölgesinde erişilebilir varsayılan izinler için trustInfo öğesini gösterir.
<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>
Üçüncü örnek FullTrust güvenlik bölgesinde erişilebilir varsayılan izinler için trustInfo öğesini gösterir.
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet ID="FullTrust" Unrestricted="true" />
<defaultAssemblyRequest permissionSetReference="FullTrust" />
</applicationRequestMinimum>
</security>
</trustInfo>