ClickOnce uygulamaları için kod erişimi güvenliği

ClickOnce uygulamaları .NET Framework'e dayanır ve kod erişimi güvenlik kısıtlamalarına tabidir. Bu nedenle, kod erişimi güvenliğinin etkilerini anlamanız ve ClickOnce uygulamalarınızı buna göre yazmanız önemlidir.

Kod erişimi güvenliği, .NET Framework'te kodun korumalı kaynaklara ve işlemlere erişimini sınırlamaya yardımcı olan bir mekanizmadır. ClickOnce uygulamanızın kod erişimi güvenlik izinlerini, uygulama yükleyicisinin konumuna uygun bölgeyi kullanacak şekilde yapılandırmanız gerekir. Çoğu durumda, sınırlı bir izin kümesi için İnternet bölgesini veya daha fazla izin kümesi için Yerel İntranet bölgesini seçebilirsiniz.

Dekont

.NET Core ve .NET 5 veya üzeri için ClickOnce'da bu özellik desteklenmez. Daha fazla bilgi için bkz . .NET için ClickOnce.

Varsayılan ClickOnce kod erişim güvenliği

Varsayılan olarak, clickOnce uygulaması bir istemci bilgisayara yüklendiğinde veya çalıştırıldığında Tam Güven izinleri alır.

  • Tam Güven izinlerine sahip bir uygulamanın dosya sistemi ve kayıt defteri gibi kaynaklara sınırsız erişimi vardır. Bu, uygulamanızın (ve son kullanıcının sisteminin) kötü amaçlı kod tarafından kötüye kullanılmasını mümkün kılar.

  • Bir uygulama Tam Güven izinleri gerektirdiğinde, son kullanıcıdan uygulamaya izin vermesi istenebilir. Bu, uygulamanın gerçekten bir ClickOnce deneyimi sağlamadığı ve istem daha az deneyimli kullanıcılar için kafa karıştırıcı olabileceği anlamına gelir.

    Dekont

    CD-ROM gibi çıkarılabilir bir medyadan uygulama yüklerken kullanıcıdan istenmez. Buna ek olarak, bir ağ yöneticisi ağ ilkesini yapılandırabilir, böylece kullanıcılar güvenilen bir kaynaktan uygulama yüklerken sorulmayabilir. Daha fazla bilgi için bkz . Güvenilen uygulama dağıtımına genel bakış.

    ClickOnce uygulamasının izinlerini kısıtlamak için, uygulamanızın kod erişimi güvenlik izinlerini değiştirerek uygulamanızın gerektirdiği izinlere en uygun bölgeyi isteyebilirsiniz. Çoğu durumda, uygulamanın dağıtıldığı bölgeyi seçebilirsiniz. Örneğin, uygulamanız bir kurumsal uygulamaysa Yerel İntranet bölgesini kullanabilirsiniz. Uygulamanız bir internet uygulamasıysa, İnternet bölgesini kullanabilirsiniz.

Güvenlik izinlerini yapılandırma

ClickOnce uygulamanızı her zaman kod erişimi güvenlik izinlerini sınırlamak için uygun bölgeyi istemek üzere yapılandırmanız gerekir. Project Tasarım Aracı Güvenlik sayfasında güvenlik izinlerini yapılandırabilirsiniz.

Project Tasarım Aracı Güvenlik sayfasında ClickOnce Güvenlik Ayarlar Etkinleştir onay kutusu bulunur. Bu onay kutusu seçildiğinde, uygulamanızın dağıtım bildirimine güvenlik izni istekleri eklenir. Yükleme sırasında, istenen izinler uygulamanın dağıtıldığı bölge için varsayılan izinleri aşarsa kullanıcıdan izin vermesi istenir. Daha fazla bilgi için bkz . Nasıl yapılır: ClickOnce güvenlik ayarlarını etkinleştirme.

Farklı konumlardan dağıtılan uygulamalara sorulmadan farklı izin düzeyleri verilir. Örneğin, bir uygulama İnternet'ten dağıtıldığında, son derece kısıtlayıcı bir izin kümesi alır. Yerel intranetten yüklendiğinde daha fazla izin alır ve CD-ROM'dan yüklendiğinde Tam Güven izinleri alır.

İzinleri yapılandırmaya yönelik bir başlangıç noktası olarak, Güvenlik sayfasındaki Bölge listesinden bir güvenlik bölgesi seçebilirsiniz. Uygulamanız birden fazla bölgeden dağıtılacaksa, en az izinlere sahip bölgeyi seçin. Daha fazla bilgi için bkz . Nasıl yapılır: ClickOnce uygulaması için güvenlik bölgesi ayarlama.

Ayarlanabilen özellikler izin kümesine göre değişir; tüm izin kümelerinin yapılandırılabilir özellikleri yoktur. Uygulamanızın isteyebileceği izinlerin tam listesi hakkında daha fazla bilgi için bkz System.Security.Permissions. . Özel bölge izinlerini ayarlama hakkında daha fazla bilgi için bkz . Nasıl yapılır: ClickOnce uygulaması için özel izinleri ayarlama.

Kısıtlı izinlere sahip bir uygulamada hata ayıklama

Geliştirici olarak, büyük olasılıkla geliştirme bilgisayarınızı Tam Güven izinleriyle çalıştırırsınız. Bu nedenle, kullanıcıların kısıtlı izinlerle çalıştırdığında görebileceği uygulamada hata ayıklarken aynı güvenlik özel durumlarını görmezsiniz.

Bu özel durumları yakalamak için son kullanıcıyla aynı izinlere sahip uygulamada hata ayıklamanız gerekir. Kısıtlı izinlerle hata ayıklama, Project Tasarım Aracı Güvenlik sayfasında etkinleştirilebilir.

Kısıtlı izinlere sahip bir uygulamada hata ayıkladığınızda, Güvenlik sayfasında etkinleştirilmemiş kod güvenliği talepleri için özel durumlar oluşturulur. Özel durumu önlemek için kodunuzun nasıl değiştirileceği hakkında öneriler sağlayan bir özel durum yardımcısı görüntülenir.

Ayrıca kod yazdığınızda Kod Düzenleyicisi'ndeki IntelliSense özelliği, yapılandırdığınız güvenlik izinlerine dahil olmayan tüm üyeleri devre dışı bırakır.

Daha fazla bilgi için bkz . Nasıl yapılır: Kısıtlı İzinlerle ClickOnce Uygulamasında Hata Ayıklama.

Tarayıcıda barındırılan uygulamalar için güvenlik izinleri

Visual Studio, Windows Presentation Foundation (WPF) uygulamaları için aşağıdaki proje türlerini sağlar:

  • WPF Windows Uygulaması

  • WPF Web Tarayıcısı Uygulaması

  • WPF Özel Denetim Kitaplığı

  • WPF Hizmet Kitaplığı

    Bu proje türlerinden yalnızca WPF Web Tarayıcısı Uygulamaları bir Web tarayıcısında barındırılır ve bu nedenle özel dağıtım ve güvenlik ayarları gerektirir. Bu uygulamalar için varsayılan güvenlik ayarları aşağıdaki gibidir:

  • ClickOnce Güvenlik Ayarlar Etkinleştirme

  • Bu kısmi bir güven uygulamasıdır

  • İnternet bölgesi (WPF Web Tarayıcısı Uygulamaları için varsayılan izin ayarlanmış olarak)

    Gelişmiş Güvenlik Ayarlar iletişim kutusunda, Seçili izin kümesiyle bu uygulamada hata ayıkla onay kutusu seçili ve devre dışıdır. Bunun nedeni, Tarayıcıda barındırılan uygulamalar için Bölgede Hata Ayıklama özelliğinin kapatılamamasıdır.