<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 true
ayarlarsanızenabled
, uzak derlemelere tam güven verilir.
olarak ayarlanmadıysa enabled
true
, 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 olaraktrue
ayarlayı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
true
ayarlayı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>