Aracılığıyla paylaş


<loadFromRemoteSources> öğesi

Uzak kaynaklardan yüklenen derlemelere .NET Framework 4 ve sonraki sürümlerde tam güven verilip verilmeyeceğini belirtir.

Uyarı

Visual Studio proje hata listesindeki bir hata iletisi veya derleme hatası nedeniyle bu makaleye yönlendirildiyseniz bkz . Nasıl yapılır: Visual Studio'da Web'den Derleme Kullanma.

<configuration>
  <runtime>
    <loadFromRemoteSources>

Sözdizimi

<loadFromRemoteSources
   enabled="true|false"/>

Öznitelikler ve öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Attributes

Özellik Description
enabled Gerekli öznitelik.

Uzak kaynaktan yüklenen bir derlemeye tam güven verilip verilmeyeceğini belirtir.

etkin öznitelik

Değer Description
false Uzak kaynaklardan uygulamalara tam güven verme. Bu varsayılan seçenektir.
true Uzak kaynaklardan uygulamalara tam güven verin.

Alt öğeler

Yok.

Üst öğeler

Öğe Description
configuration Her yapılandırma dosyasında yer alan ve ortak dil çalışma zamanı ve .NET Framework uygulamaları tarafından kullanılan kök öğe.
runtime Çalışma zamanı başlatma seçenekleri hakkında bilgi içerir.

Açıklamalar

.NET Framework 3.5 ve önceki sürümlerinde, bir derlemeyi uzak bir konumdan yüklerseniz, derlemedeki kod, yüklendiği bölgeye bağlı olan bir izin kümesiyle kısmi güven içinde çalışır. Örneğin, bir web sitesinden bir derleme yüklerseniz, bu derleme İnternet bölgesine yüklenir ve İnternet izin kümesi verilir. Başka bir deyişle, bir İnternet korumalı alanında yürütülür.

.NET Framework 4'den başlayarak kod erişim güvenliği (CAS) ilkesi devre dışı bırakılır ve derlemeler tam güven içinde yüklenir. Normalde bu, daha önce korumalı alana alınmış olan yöntemle Assembly.LoadFrom yüklenen derlemelere tam güven verir. Bunu önlemek için, uzak kaynaktan yüklenen derlemelerde kod çalıştırma özelliği varsayılan olarak devre dışı bırakılır. Varsayılan olarak, uzak bir derleme yüklemeye çalışırsanız aşağıdaki FileLoadException gibi bir özel durum iletisi oluşturulur:

System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.

Derlemeyi yüklemek ve kodunu yürütmek için aşağıdakilerden birini kullanmanız gerekir:

  • Derleme için açıkça bir korumalı alan oluşturun (bkz . Nasıl yapılır: Korumalı Alanda Kısmen Güvenilen Kod Çalıştırma).

  • Derlemenin kodunu tam güven içinde çalıştırın. Bunu, öğesini yapılandırarak <loadFromRemoteSources> yaparsınız. .NET Framework'ün önceki sürümlerinde kısmi güven içinde çalışan derlemelerin artık .NET Framework 4 ve sonraki sürümlerinde tam güven içinde çalışacağını belirtmenize olanak tanır.

Önemli

Derleme tam güven içinde çalışmamalıdır, bu yapılandırma öğesini ayarlamayın. Bunun yerine, derlemenin yüklendiği korumalı AppDomain bir alan oluşturun.

enabled öğesinin <loadFromRemoteSources> özniteliği yalnızca kod erişimi güvenliği (CAS) devre dışı bırakıldığında geçerlidir. CAS ilkesi varsayılan olarak .NET Framework 4 ve sonraki sürümlerinde devre dışıdır. olarak ayarlarsanız enabledtrue, uzak derlemelere tam güven verilir.

olarak ayarlanmadıysa enabledtrue, aşağıdaki koşullardan biri altında bir FileLoadException oluşturulur:

  • Geçerli etki alanının korumalı alan davranışı, .NET Framework 3.5'teki davranışından farklıdır. Bunun için CAS ilkesinin devre dışı bırakılması ve geçerli etki alanının korumalı alan olmaması gerekir.

  • Yüklenen derleme bölgeden MyComputer değil.

öğesini bu <loadFromRemoteSources> özel durumun oluşmasını engelleyecek şekilde true ayarlamak. Güvenlik için yüklenen derlemeleri korumalı alan için ortak dil çalışma zamanına güvenmemenizi ve bunların tam güven içinde yürütülmesine izin verilebileceğini belirtmenize olanak tanır.

Notes

  • .NET Framework 4.5 ve sonraki sürümlerinde, yerel ağ paylaşımlarındaki derlemeler ( yerel Intranet güvenlik bölgesi) varsayılan olarak tam güven içinde çalışır; öğesini etkinleştirmeniz <loadFromRemoteSources> gerekmez. Yerel Makine veya Yerel İntranet dışındaki güvenlik bölgeleri için değerini olarak trueayarlayın.

  • Bir uygulama web'den kopyalanmışsa, yerel bilgisayarda olsa bile Windows tarafından bir web uygulaması olarak işaretlenir. Dosya özelliklerini değiştirerek bu gösterimi değiştirebilir veya derlemeye <loadFromRemoteSources> tam güven vermek için öğesini kullanabilirsiniz. Alternatif olarak, işletim sisteminin web'den yüklenmiş olarak işaretlediği yerel bir derlemeyi yüklemek için yöntemini kullanabilirsiniz UnsafeLoadFrom .

  • FileLoadException Bir Windows Sanal Bilgisayar uygulamasında çalışan bir uygulamada alabilirsiniz. Bu durum, barındırma bilgisayarındaki bağlı klasörlerden bir dosya yüklemeye çalıştığınızda oluşabilir. Ayrıca , Uzak Masaüstü Hizmetleri (Terminal Hizmetleri) üzerinden bağlantılı bir klasörden dosya yüklemeye çalıştığınızda da oluşabilir. Özel durumdan kaçınmak için olarak enabledayarlayıntrue.

Yapılandırma dosyası

Bu öğe genellikle uygulama yapılandırma dosyasında kullanılır, ancak bağlama bağlı olarak diğer yapılandırma dosyalarında kullanılabilir. Daha fazla bilgi için .NET Güvenliği blogunda CAS İlkesinin Daha Örtük Kullanımları: loadFromRemoteSources makalesine bakın.

Example

Aşağıdaki örnekte, uzak kaynaklardan yüklenen derlemelere tam güven verme gösterilmektedir.

<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>

Ayrıca bakınız