<loadFromRemoteSources> öğesi

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

Not

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.

<Yapılandırma>
  <Çalışma zamanı>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>

Öznitelikler ve öğeler

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

Öznitelikler

Öznitelik Açıklama
enabled Gerekli öznitelik.

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

enabled özniteliği

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

Alt öğeleri

Yok.

Üst öğeler

Öğe Açıklama
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ümlerde, 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 derlemeyi bir web sitesinden 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 bütünleştirilmiş kodlar tam güven içinde yüklenir. Normalde bu, daha önce korumalı alan olan yöntemiyle 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, bir uzak derleme yüklemeyi denerseniz, FileLoadException aşağıdaki 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 şunları gerçekleştirmeniz 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 önceki sürümlerinde kısmi güven içinde çalışan derlemelerin artık .NET Framework 4 ve sonraki sürümlerde tam güven içinde çalıştırılacağı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şim güvenliği (CAS) devre dışı bırakıldığında geçerlidir. Cas ilkesi varsayılan olarak .NET Framework 4 ve sonraki sürümlerde devre dışıdır. olarak trueayarlarsanızenabled, 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 olarak <loadFromRemoteSources>true ayarlamak bu özel durumun oluşmasını engeller. Güvenlik için yüklenen derlemeleri korumalı alana almak 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.

Notlar

  • .NET Framework 4.5 ve sonraki sürümlerde, 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. 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 trueayarlayınenabled.

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üvenlik blogunda CAS İlkesinin Daha Örtük Kullanımları: loadFromRemoteSources makalesine bakın.

Örnek

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

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

Ayrıca bkz.