Share via


Kod Erişim Güvenliği Özel Durumlarında Sorun Giderme

Kodunuzu yapmak ve bunu verilir izinleri denetler.Bir uygulamayı yürüten anda, çalışma zamanı tarafından bir izin kümesi verilir.Yeterli izinlere sahipse, düzgün çalışır; Aksi durumda bir güvenlik özel durumu oluşuyor.

Kodunuzu verilen izinlere yerden belirlenir, (örneğin, Internet, intranet veya yerel bilgisayar) uygulaması başlatıldı ve uygulama çalıştıran bilgisayardaki güvenlik ayarları.Bu ayarları bir bilgisayardan başka bir bilgisayara farklı olabilir beri kod yeterli izinleri almak olsun veya olmasın her zaman tahmin edemez.

İzinleri isteyen yerel bilgisayardaki güvenlik ilkesi izin veriyorsa kodunuzu çalıştırma sağlar.Gerekli izin isteme, kodunuzu değil çalıştırma riskini çalıştırın.Kod erişim izinleri ve bunları isteme hakkında daha fazla bilgi için bkz: Kod Erişim İzinleri veya Requesting Permissions.Daha fazla bilgi için Try...Catch blokları, bkz: Try...Catch...Finally Deyimi (Visual Basic).

ClickOnceuygulamalar, ek izinler gerekiyorsa, Uygulama Tasarımcısı'nda Güvenlik sayfasını kullanarak, talep edebilirsiniz.Daha fazla bilgi için bkz. Nasıl yapılır: ClickOnce Uygulaması için Özel İzinleri Ayarlama.

Kod erişimi güvenlik istisnaları olası nedenleri şunlardır:

  • Pano. Panoya hassas bilgiler içerebileceğinden programlı olarak Panodan yapıştırarak Yasak yönetilen kod özelliğidir.

  • Kayıt defteri veya dosya sistemi erişimi. Yerel dosya sistemine erişim kısıtlıdır.Dosya veya dağıtılan kaynak ile derlemenize erişiyorsanız, kodu kullanın Assembly.GetExecutingAssembly.Location derlemenize için yol almak için.

  • Ağ erişimi. Derlemenize derlemenize yüklenen aynı iletişim kuralı kullandığından emin olun.Genellikle, ağ iletişimi yalnızca derleme kaynağı olan url verilir.

  • Yazdırma. Internet bölgesinde çalışan yazılım, yalnızca ortak bir iletişim kutusunu kullanarak yazdırabilirsiniz.Yalnızca bir yazıcı seçmek izin veren bir common dialog kullanıyorsa, varsayılan yazıcı kullanımı kısıtlıdır.

  • Seri hale getirme. Rasgele verilerden bir nesneyi yeniden oluşturmak için tam güvenle çalışan kod için kısıtlı olanağıdır.xml seri hale getirme, XmlSerializer türü teknik olarak kısmen güvenilen kod tarafından hat olmalıdır.Daha fazla bilgi için XmlSerializer yazın, bkz: XmlSerializer sınıf.

  • Yansıtma. Yansıtma ile ilgili özellikleri çalışma zamanının çoğunu kullanımdan kısmen güvenilen kod tarafından kısıtlanır.

Kod erişim SecurityException yaratacak, belirlemek için kodu test etmek

Bir kod bloğu, throw olanağına sahip olup bir CodeAccessSecurityException, kullanın bir Try...Catch kodunuz varsa, yürütmek ve bu işlem gerçekleştirilemiyor, başarısızlık çözüm bulmak için izin vermek için blok.

Bazen uygulamanızı ana sistem verilmiş izinlere bağlı davranışını ayarlamak isteyebilirsiniz.Örneğin, uygulamanın yazdırma izinleri yoksa menüsündeki Yazdır komutunu devre dışı bırakmak isteyebilirsiniz.

Bunun için test etmek için bir örneğini oluşturabilirsiniz bir CodeAccessPermission-türetilmiş sınıf gibi FileIOPermission.Sonra da yürütebilmesi için Demand içinde iznini yöntemi bir Try...Catch blok.Özel durum oluşursa, bilgisayarınızı derleme izni yok.

Aşağıdaki örnek derleme olup olmadığını sınar EventLogPermission çalıştırma veya oluşturma izni bir EventLogPermission ve kendi Demand yöntemi içinde bir Try...Catch belirlemek için blok olmasa da Demand başarılı olur.

Try
    Dim MyPermission As New EventLogPermission
    MyPermission.Demand()
    MsgBox(MyPermission.ToString())
Catch ex As Exception
    MsgBox("Assembly lacks EventLogPermission.")
End Try

Ayrıca bkz.

Kavramlar

Kod Erişim İzinleri

Kod Erişim Güvenliği Temelleri

Diğer Kaynaklar

Requesting Permissions