Aracılığıyla paylaş


Yalıtılmış depolama

Masaüstü uygulamaları için yalıtılmış depolama, kodu kaydedilen verilerle ilişkilendirmenin standartlaştırılmış yollarını tanımlayarak yalıtım ve güvenlik sağlayan bir veri depolama mekanizmasıdır. Standart hale getirme başka yararlar da sağlar. Yöneticiler yalıtılmış depolamayı değiştirecek araçları kullanarak dosya depolama alanını yapılandırabilir, güvenlik ilkelerini ayarlayabilir ve kullanılmayan verileri silebilir. Yalıtılmış depolama ile kodunuz dosya sistemindeki güvenli konumları belirtmek için benzersiz yollara ihtiyaç duymaz ve veriniz yalnızca yalıtılmış depolama erişimi olan diğer uygulamalardan korunur. Bir uygulamanın depo alanının nerede olduğunu belirten sabit kodlu bilgi gerekli değildir.

Önemli

Yalıtılmış depolama, Windows 8.x Store uygulamalarında kullanılamaz. Bunun yerine, yerel verileri ve dosyaları depolamak için Windows Çalışma Zamanı API'sine dahil edilen ad alanları içindeki uygulama veri sınıflarını Windows.Storage kullanın. Daha fazla bilgi için bkz. Windows Geliştirme Merkezi uygulama verileri.

Veri Bölmeleri ve Depoları

Bir uygulama verileri bir dosyada depoladığında, depolama konumunun başka bir uygulama tarafından bilinme olasılığını en aza indirmek ve bu nedenle bozulmaya karşı savunmasız olmak için dosya adı ve depolama konumu dikkatli bir şekilde seçilmelidir. Bu sorunları yönetmek için standart bir sistem olmadan, depolama çakışmalarını en aza indiren geliştirme teknikleri karmaşık olabilir ve sonuçlar güvenilir olmayabilir.

Yalıtılmış depolama ile veri her zaman kullanıcıya ve derlemeye göre yalıtılır. Derlemenin başlangıç noktası veya tanımlayıcı adı gibi kimlik bilgileri derlemenin kimliğini belirler. Veri ayrıca benzer kimlik bilgileri kullanarak uygulama etki alanına göre de yalıtılabilir.

Yalıtılmış depolama kullandığınızda, uygulamanız veriyi kodun yayımcısı veya imzası gibi bir bilgi ile ilişkili benzersiz bir veri bölmesine kaydeder. Veri bölmesi belirli bir depolama konumu değildir, bir soyutlamadır, ve depo denen verinin tutulduğu gerçek dizin konumlarını içeren bir veya daha fazla yalıtılmış depolama dosyasından oluşur. Örneğin, bir uygulamanın kendisiyle ilişkili bir veri bölmesi olabilir, ve dosya sistemindeki bir dizin o uygulama için veriyi tutan gerçek depoyu uygulayabilir. Depoya kaydedilen veri kullanıcı tercih bilgisinden uygulama durumuna kadar herhangi türde bir veri olabilir. Geliştirici için, veri bölmesinin konumu saydamdır. Depolar genellikle istemcide bulunur, ancak bir sunucu uygulaması, çalıştığı kullanıcının kimliğine bürünerek bilgi depolamak için yalıtılmış depolar kullanabilir. Yalıtılmış depolama ayrıca bir kullanıcının gezici profili ile bir sunucu üzerinde bilgi tutarak o bilginin gezici kullanıcıyla birlikte hareket etmesini sağlayabilir.

Ayrık Depolama Kotaları

Bir kota, kullanılabilen yalıtılmış depolama miktarındaki bir sınırdır. Kota dosya alanı baytlarının yanı sıra depodaki dizin ve diğer bilgilerle ilgili ek yükü de içerir. Yalıtılmış depolama, nesneler kullanılarak IsolatedStoragePermission ayarlanan depolama sınırları olan izin kotalarını kullanır. Kotayı aşan veriler yazmaya çalışırsanız bir IsolatedStorageException özel durum oluşur. .NET Framework Yapılandırma Aracı (Mscorcfg.msc) kullanarak değiştirilebilen güvenlik ilkesi koda hangi izinlerin verildiğini belirler. IsolatedStoragePermission verilen kod, UserQuota özelliğinin izin verdiği depolama alanından daha fazla kullanmakla sınırlıdır. Ancak, kod farklı kullanıcı kimlikleri sunarak izin kotalarını atlayabileceği için, izin kotaları kod davranışı için kesin bir sınır yerine daha çok kodun nasıl davranacağı üzerine bir kılavuz olarak görev görür.

Kotalar, mobil mağazalarda uygulanmaz. Bu nedenle kodun bunu kullanabilmesi için biraz daha yüksek bir izin düzeyi gerekir. Numaralandırma değerleri AssemblyIsolationByRoamingUser ve DomainIsolationByRoamingUser, dolaşan bir kullanıcı için yalıtılmış depolamanın kullanılmasına izin verir.

Güvenli Erişim

Yalıtılmış depolama kullanımı kısmen güvenilir uygulamaların bilgisayarın güvenlik ilkesi tarafından kontrol edilerek veri depolamasını sağlar. Bu özellikle bir kullanıcının dikkatli olarak çalıştırmak isteyeceği indirilen bileşenler için kullanışlıdır. Güvenlik ilkesi, standart I/O mekanizmalarını kullanarak dosya sistemine eriştiğinizde bu tür kod iznini nadiren verir. Ancak varsayılan olarak; yerel bilgisayardan, yerel bir ağdan veya Internet üzerinden çalıştırılan koda yalıtılmış depolama hakkı verilir.

Yöneticiler uygun olan güven düzeyine göre bir uygulamanın veya kullanıcının ne kadar yalıtılmış depolama alanına sahip olacağını sınırlayabilir. Ek olarak, yöneticiler bir kullanıcının kalıcı verilerini tamamen kaldırabilir. Yalıtılmış depolama oluşturmak veya depolamaya erişmek için koda uygun IsolatedStorageFilePermission izin verilmelidir.

Yalıtılmış depolamaya erişmek için, kod tüm gerekli yerel platform işletim sistemi haklarına sahip olmalıdır. Hangi kullanıcıların dosya sistemini kullanmaya hakkı olduğunu kontrol eden erişim denetim listeleri (ACL) sağlanmalıdır. .NET uygulamaları, (platforma özgü) kimliğe bürünme gerçekleştirmedikleri sürece yalıtılmış depolamaya erişmek için zaten işletim sistemi haklarına sahiptir. Bu durumda, uygulama kimliğine bürünülen kullanıcının yalıtılmış depolamaya erişmek için gerekli uygun işletim sistemi haklarına sahip olduğundan emin olmakta sorumludur. Bu erişim, internetten çalıştırılan veya indirilen kodun belirli bir kullanıcı ile ilgili depolama alanında okuma ve yazma işlemleri yapabilmesi için kullanışlı bir yol sağlar.

Yalıtılmış depolamaya erişimi denetlemek için ortak dil çalışma zamanı nesneleri kullanır IsolatedStorageFilePermission . Her nesne aşağıdaki değerleri belirten özelliklere sahiptir:

  • İzin verilen kullanım, izin verilen erişim türünü belirtir. Değerler, numaralandırmanın IsolatedStorageContainment üyeleridir. Bu değerler hakkında daha fazla bilgi için, sonraki bölümdeki tabloya bakın.

  • Depo kotası, önceki bölümde anlatıldığı gibidir.

Kod bir depo açmayı ilk kez denediğinde çalışma zamanı izin gerektirir IsolatedStorageFilePermission . Kodun ne kadar güvenilir olduğuna bağlı olarak bu iznin verilip verilmeyeceğine karar verir. İzin verilirse, izin verilen kullanım ve depolama kotası değerleri güvenlik ilkesine ve kodun isteğine IsolatedStorageFilePermissiongöre belirlenir. Güvenlik ilkesi .Net Framework Yapılandırma Aracı (Mscorcfg.msc) kullanılarak ayarlanır. Çağrı yığınındaki tüm çağıranlar, her çağıranın en azından uygun izin verilen kullanıma sahip olduğundan emin olmak için kontrol edilir. Çalışma zamanı ayrıca dosyanın kaydedileceği depoyu açan veya oluşturan koda uygulanan kotayı da kontrol eder. Eğer bu koşullar sağlanırsa, izin verilir. Kota, depoya her dosya yazıldığında tekrar kontrol edilir.

Ortak dil çalışma zamanı güvenlik ilkesine göre uygun olan her şeyi IsolatedStorageFilePermission verdiğinden, uygulama kodu izin istemek için gerekli değildir. Ancak, uygulamanızın ihtiyaç duyduğu belirli izinleri istemek için iyi nedenler vardır, örneğin IsolatedStorageFilePermission.

İzin Verilen Kullanım ve Güvenlik Riskleri

tarafından IsolatedStorageFilePermission belirtilen izin verilen kullanım, hangi kodun yalıtılmış depolama oluşturmasına ve kullanmasına izin verileceğini belirler. Aşağıdaki tablo izinde belirtilen izin verilen kullanımın hangi yalıtım türlerine karşılık geldiğini gösterir ve her izin verilen kullanım ile ilişkili güvenlik risklerini özetler.

İzin verilen kullanım Yalıtım türleri Güvenlik etkisi
None Hiçbir yalıtılmış depolama kullanımına izin verilmez. Güvenlik etkisi yoktur.
DomainIsolationByUser Kullanıcı, etki alanı ve derleme bazında yalıtım Her derlemenin etki alanı içinde ayrı bir alt deposu bulunur. Bu izni kullanan depolar aynı zamanda bilgisayarla da zımnen yalıtılır. Bu izin düzeyi kaynakları yetkisiz aşırı kullanıma açık bırakır, ancak uygulanan kotalar bunu zorlaştırır. Buna hizmet reddi saldırısı denir.
DomainIsolationByRoamingUser ile DomainIsolationByUseraynıdır, ancak gezici kullanıcı profilleri etkinleştirilirse ve kotalar uygulanmazsa depo dolaşıma açılacak bir konuma kaydedilir. Kotaların devre dışı bırakılması gerektiği için, depo kaynakları bir hizmet reddi saldırısına karşı daha savunmasızdır.
AssemblyIsolationByUser Kullanıcı ve derlemeye göre yalıtım Bu izni kullanan depolar aynı zamanda bilgisayarla da zımnen yalıtılır. Kotalar hizmet reddi saldırısını önlemeye yardımcı olmak için bu düzeyde uygulanır. Başka bir etki alanındaki aynı derleme bu depoya erişebilir ve bu nedenle uygulamalar arasında bilgi sızma olasılığı bulunur.
AssemblyIsolationByRoamingUser ile AssemblyIsolationByUseraynıdır, ancak gezici kullanıcı profilleri etkinleştirilirse ve kotalar uygulanmazsa depo dolaşıma açılacak bir konuma kaydedilir. AssemblyIsolationByUser durumunda olduğu gibi, ancak kota olmadan hizmet reddi saldırısı riski artmaktadır.
AdministerIsolatedStorageByUser Kullanıcıya göre yalıtım. Genellikle yalnızca yönetici veya hata ayıklama araçları bu izin düzeyini kullanır. Bu izinle olan erişim, kodun bir kullanıcının yalıtılmış depolama dosyalarını ve dizinlerini görüntülemesine ve silmesine olanak verir (derleme yalıtımına bakmaksızın). Riskler, bilgi sızması ve veri kaybını içerir ancak bunlarla sınırlı değildir.
UnrestrictedIsolatedStorage Tüm kullanıcılar, etki alanları ve derlemelere göre yalıtım. Genellikle yalnızca yönetici veya hata ayıklama araçları bu izin düzeyini kullanır. Bu izin tüm kullanıcılar için tüm yalıtılmış depoların açığa çıkma olasılığını oluşturur.

Yalıtılmış depolama bileşenlerinin güvenilmeyen verilerle ilgili güvenliği

Bu bölüm aşağıdaki çerçeveler için geçerlidir:

  • .NET Framework (tüm sürümler)
  • .NET Core 2.1+
  • .NET 5+

.NET Framework ve .NET Core, bir kullanıcı, uygulama veya bileşen için verileri kalıcı hale getirmek için bir mekanizma olarak yalıtılmış depolama sunar. Bu, öncelikli olarak kullanım dışı bırakılan Kod Erişimi Güvenliği senaryoları için tasarlanmış eski bir bileşendir.

Güven sınırları boyunca verileri okumak için çeşitli yalıtılmış depolama API'leri ve araçları kullanılabilir. Örneğin, makine genelindeki bir kapsamdan veri okumak, makinedeki diğer, büyük olasılıkla daha az güvenilen kullanıcı hesaplarından veri toplayabilir. Makine genelinde yalıtılmış depolama kapsamlarından okunan bileşenler veya uygulamalar, bu verileri okumanın sonuçlarının farkında olmalıdır.

Makine genelindeki kapsamdan okuyabilen güvenlik duyarlı API'ler

Aşağıdaki API'lerden herhangi birini çağıran bileşenler veya uygulamalar makine genelindeki kapsamdan okur:

Yalıtılmış depolama aracıstoreadm.exe, aşağıdaki kodda gösterildiği gibi /machine anahtarıyla çağrıldığında etkilenir.

storeadm.exe /machine [any-other-switches]

Yalıtılmış depolama aracı, Visual Studio ve .NET Framework SDK'sının bir parçası olarak sağlanır.

Uygulama önceki API'lere çağrı içermiyorsa veya iş akışı bu şekilde çağrılmıyorsa storeadm.exe , bu belge geçerli değildir.

Çok kullanıcılı ortamlarda etki

Daha önce belirtildiği gibi, bu API'lerden gelen güvenlik etkisi, bir güven ortamından yazılan verilerden kaynaklanır ve farklı bir güven ortamından okunur. Yalıtılmış depolama genellikle verileri okumak ve yazmak için üç konumdan birini kullanır:

  1. %LOCALAPPDATA%\IsolatedStorage\: Örneğin, C:\Users\<username>\AppData\Local\IsolatedStorage\, User kapsam için.
  2. %APPDATA%\IsolatedStorage\: Örneğin, C:\Users\<username>\AppData\Roaming\IsolatedStorage\, User|Roaming kapsam için.
  3. %PROGRAMDATA%\IsolatedStorage\: Örneğin, C:\ProgramData\IsolatedStorage\, Machine kapsam için.

İlk iki konum kullanıcı başına yalıtılır. Windows, aynı makinedeki farklı kullanıcı hesaplarının birbirlerinin kullanıcı profili klasörlerine erişememesini sağlar. veya User depolarını kullanan iki farklı kullanıcı hesabı birbirlerinin User|Roaming verilerini görmez ve birbirlerinin verilerine müdahale edemez.

Üçüncü konum, makinedeki tüm kullanıcı hesapları arasında paylaşılır. Farklı hesaplar bu konumdan okuyup yazabilir ve birbirlerinin verilerini görebilir.

Önceki yollar, kullanımda olan Windows sürümüne göre farklılık gösterebilir.

Şimdi Iki kayıtlı kullanıcı Mallory ve Bob ile çok kullanıcılı bir sistem düşünün. Mallory kullanıcı profili dizinine C:\Users\Mallory\erişebilir ve paylaşılan makine genelindeki depolama konumuna C:\ProgramData\IsolatedStorage\erişebilir. Bob'un kullanıcı profili dizinine C:\Users\Bob\erişemiyor.

Mallory Bob'a saldırmak isterse, makine düzeyindeki depolama konumuna veri yazabilir ve ardından Bob'u makine düzeyindeki depolama konumundan okuması için etkilemeye çalışabilir. Bob bu mağazadan veri okuyan bir uygulama çalıştırdığında, bu uygulama, Bob'un kullanıcı hesabı bağlamında, Mallory tarafından bu mağazaya kaydedilen veriler üzerinde çalışır. Bu belgenin geri kalanında çeşitli saldırı vektörleri ve uygulamaların bu saldırılara karşı risklerini en aza indirmek için yapabilecekleri adımlar incelenir.

Not

Böyle bir saldırının gerçekleşmesi için Mallory şunları gerektirir:

  • Makinedeki bir kullanıcı hesabı.
  • Bir dosyayı dosya sistemindeki bilinen bir konuma yerleştirebilme.
  • Bob'un bir noktada bu verileri okumaya çalışan bir uygulamayı çalıştıracağını bilmelisiniz.

Bunlar, ev bilgisayarları veya tek çalışan kurumsal iş istasyonları gibi standart tek kullanıcılı masaüstü ortamları için geçerli olan tehdit vektörleri değildir.

Yetki Yükseltmesi

Bob'un uygulaması Mallory'nin dosyasını okuduğunda ve bu yükün içeriğine göre otomatik olarak bazı eylemler gerçekleştirmeye çalıştığında ayrıcalık yükseltme saldırısı gerçekleşir. Başlangıç betiğinin içeriğini makine genelindeki depodan okuyan ve bu içerikleri öğesine Process.Startgeçiren bir uygulama düşünün. Mallory makine genelindeki mağazaya kötü amaçlı bir betik yerleştirebiliyorsa Bob uygulamasını başlattığında:

  • Uygulaması, Bob'un kullanıcı profili bağlamında Mallory'nin kötü amaçlı betiğini ayrıştırıp başlatır.
  • Mallory yerel makinede Bob'un hesabına erişim kazanır.

Hizmet reddi

Mallory'nin dosyasını okuduğunda Bob'un uygulaması çöker veya düzgün çalışmayı durdurursa bir hizmet reddi saldırısı gerçekleşir. Daha önce bahsedilen ve makine genelindeki mağazadan bir başlangıç betiğini ayrıştırmaya çalışan uygulamayı yeniden düşünün. Mallory, makine genelindeki mağazaya yanlış biçimlendirilmiş içerik içeren bir dosya yerleştirebilirse, şunları yapabilir:

  • Bob'un uygulamasının başlangıç yolunun başlarında bir istisna atmasına neden olur.
  • Özel durum nedeniyle uygulamanın başarıyla başlatılmasını engelleyin.

Daha sonra Bob'a uygulamayı kendi kullanıcı hesabı altında başlatma özelliğini reddetti.

Bilgilerin açığa çıkması

Mallory normalde erişim izni olmayan bir dosyanın içeriğini ifşa etmek için Bob'u kandırabildiğinde bir bilginin açığa çıkması saldırısı oluşur. Bob'un Mallory'nin okumak istediği C:\Users\Bob\secret.txt gizli bir dosyası olduğunu düşünün. Bu dosyanın yolunu biliyor, ancak Windows Bob'un kullanıcı profili dizinine erişmesini yasakladığı için dosyayı okuyamıyor.

Bunun yerine Mallory, makine genelindeki mağazaya sabit bir bağlantı yerleştirir. Bu, kendisi herhangi bir içerik içermeyen özel bir dosya türüdür, bunun yerine diskte başka bir dosyaya işaret eder. Sabit bağlantı dosyasını okumaya çalışmak bunun yerine bağlantı tarafından hedeflenen dosyanın içeriğini okur. Sabit bağlantıyı oluşturduktan sonra, Mallory bağlantının hedefine (C:\Users\Bob\secret.txt) erişimi olmadığından dosya içeriğini okuyamıyor. Ancak Bob'un bu dosyaya erişimi vardır.

Bob'un uygulaması makine genelindeki mağazadan okuma yaptığı zaman, dosyanın kendisi makine genelindeki mağazada varmış gibi, farkında olmadan secret.txt dosyasının içeriğini okur. Bob'un uygulaması çıktığında, dosyayı makine genelindeki depoya yeniden kaydetmeye çalışırsa, dosyanın gerçek bir kopyasını *C:\ProgramData\IsolatedStorage* dizinine yerleştirir. Bu dizin makinedeki herhangi bir kullanıcı tarafından okunabildiğinden, Mallory artık dosyanın içeriğini okuyabilir.

Bu saldırılara karşı savunmak için en iyi yöntemler

Önemli: Ortamınızda karşılıklı olarak güvenilmeyen birden çok kullanıcı varsa, API'yi çağırmayın veya IsolatedStorageFile.GetEnumerator(IsolatedStorageScope.Machine). Bunların her ikisi de güvenilir veriler üzerinde çalıştıklarını varsayar. Bir saldırgan makine genelindeki depoda kötü amaçlı bir yük görebilirse bu yük, bu komutları çalıştıran kullanıcının bağlamında ayrıcalık yükseltme saldırısına yol açabilir.

Çok kullanıcılı bir ortamda çalışıyorsanız, Makine kapsamını hedefleyen yalıtılmış depolama özelliklerinin kullanımını yeniden gözden geçirin. Bir uygulamanın makine genelindeki bir konumdan veri okuması gerekiyorsa, verileri yalnızca yönetici hesapları tarafından yazılabilen bir konumdan okumayı tercih edin. %PROGRAMFILES% Dizin ve HKLM kayıt defteri kovanı, yalnızca yöneticiler tarafından yazılabilen ve herkes tarafından okunabilen konumlara örnektir. Bu nedenle bu konumlardan okunan veriler güvenilir olarak kabul edilir.

Bir uygulamanın Çok kullanıcılı bir ortamda Makine kapsamını kullanması gerekiyorsa, makine genelindeki depodan okuduğunuz herhangi bir dosyanın içeriğini doğrulayın. Uygulama bu dosyalardan nesne graflarını seri durumdan çıkarıyorsa, XmlSerializer veya BinaryFormatter gibi tehlikeli serileştiriciler yerine NetDataContractSerializer gibi daha güvenli serileştiriciler kullanmayı göz önünde bulundurun. Dosya içeriğine göre kaynak ayırma gerçekleştiren derin iç içe nesne grafiklerinde veya nesne grafiklerinde dikkatli olun.

Ayrık Depolama Konumları

Bazen yalıtılmış depolamaya yapılan bir değişikliği işletim sisteminin dosya sistemini kullanarak doğrulamak yararlıdır. Ayrıca yalıtılmış depolama dosyalarının konumunu da bilmek isteyebilirsiniz. Bu konum işletim sistemine göre değişir. Aşağıdaki tablo bazı yaygın işletim sistemleri için yalıtılmış depolamanın bulunduğu kök konumlarını gösterir. Bu kök konumu altında Microsoft\IsolatedStorage dizinlerine bakın. Dosya sisteminde yalıtılmış depolamayı görmek için klasör ayarlarını değiştirerek gizli dosyaları ve klasörleri görünür yapmanız gerekir.

İşletim sistemi Dosya sistemindeki konumu
Windows 2000, Windows XP, Windows Server 2003 (Windows NT 4.0'dan yükseltme) Gezinme etkinleştirilmiş depolar =

<SYSTEMROOT>\Profiles\<user>\Uygulama Verileri

Gezici olmayan depolar =

<SYSTEMROOT>\Profiles\<user>\Yerel Ayarlar\Uygulama Verileri
Windows 2000 - temiz yükleme (ve Windows 98 ve Windows NT 3.51'den yükseltme) Gezinme etkinleştirilmiş depolar =

<SYSTEMDRIVE>\Belgeler ve Ayarlar\<kullanıcı>\Uygulama Verisi

Gezici olmayan depolar =

<SYSTEMDRIVE>\Belgeler ve Ayarlar\<kullanıcı>\Yerel Ayarlar\Uygulama Verileri
Windows XP, Windows Server 2003 - temiz yükleme (Windows 2000 ve Windows 98'den yükseltme) Gezinme etkinleştirilmiş depolar =

<SYSTEMDRIVE>\Belgeler ve Ayarlar\<kullanıcı>\Uygulama Verisi

Gezici olmayan depolar =

<SYSTEMDRIVE>\Belgeler ve Ayarlar\<kullanıcı>\Yerel Ayarlar\Uygulama Verileri
Windows 8, Windows 7, Windows Server 2008, Windows Vista Gezinme etkinleştirilmiş depolar =

<SYSTEMDRIVE>\Users\<user>\AppData\Roaming

Gezici olmayan depolar =

<SYSTEMDRIVE>\Users\user<\>AppData\Local

Ayrık Depolama Birimi Oluşturma, Numaralandırma ve Silme

.NET, yalıtılmış depolama içeren görevleri gerçekleştirmenize yardımcı olmak için ad alanında üç sınıf System.IO.IsolatedStorage sağlar:

Yalıtılmış depolama sınıfları, yalıtılmış depoları oluşturmanızı, numaralandırmanızı ve silmenizi sağlar. Bu görevleri gerçekleştirme yöntemleri nesnesi aracılığıyla IsolatedStorageFile kullanılabilir. Bazı işlemler, yalıtılmış depolamayı yönetme hakkını temsil eden izne sahip IsolatedStorageFilePermission olmanız gerekir; dosyaya veya dizine erişmek için işletim sistemi haklarına da sahip olmanız gerekebilir.

Yaygın yalıtılmış depolama görevlerini gösteren bir dizi örnek için İlgili Konular'da listelenen nasıl yapılır konularına bakın.

Ayrık Depolama Birimi Senaryoları

Yalıtılmış depolama, aşağıdaki dört senaryo da dahil olmak üzere pek çok durumda kullanışlıdır:

  • İndirilen kontroller. İnternetten indirilen yönetilen kod denetimlerinin normal I/O sınıflarıyla hard diske yazmasına izin verilmez, ancak yalıtılmış depolama kullanarak kullanıcıların ayarlarını ve uygulama durumlarını kalıcı olarak tutabilirler.

  • Paylaşılan bileşen depolama. Uygulamalar arasında paylaşılan bileşenler, veri depolarına kontrollü erişim sağlamak için yalıtılmış depolamayla kullanılabilir.

  • Sunucu depolama alanı. Sunucu uygulamaları yalıtılmış depolamayı kullanarak uygulamaya istekte bulunan büyük sayıdaki kullanıcılar için tek tek depo sağlayabilir. Yalıtılmış depolama her zaman kullanıcıya göre ayrıldığı için, sunucu, istekte bulunan kullanıcının kimliğini taklit etmelidir. Bu durumda, veriler ana kullanıcının kimliğine göre yalıtılır. Bu kimlik, uygulamanın kullanıcıları arasında ayrım yapmak için kullandığı kimlik doğrulama bilgileridir.

  • Dolaşım. Uygulamalar gezici kullanıcı profilleriyle de yalıtılmış depolama kullanabilir. Bu, bir kullanıcının yalıtılmış depolarının profil ile birlikte gezinmesini sağlar.

Aşağıdaki durumlarda yalıtılmış depolama kullanmayın:

  • Şifrelenmemiş anahtarlar veya şifreler gibi yüksek değerli veriler için, çünkü yalıtılmış depolama yüksek derecede güvenilen koddan, yönetilmeyen koddan veya bilgisayarın güvenilen kullanıcılarından korunmaz.

  • Kod saklamak için.

  • Yöneticilerin kontrol ettiği yapılandırma ve dağıtım ayarları için. (Kullanıcı tercihleri yapılandırma ayarı sayılmaz, çünkü yöneticiler onları kontrol etmez.)

Çoğu uygulama veri depolamak ve yalıtmak için bir veri tabanı kullanır ve bu durumda bir veritabanındaki bir veya daha fazla satır belirli bir kullanıcı için depolamayı temsil edebilir. Kullanıcı sayısı az olduğunda, bir veritabanı kullanmanın getirdiği ek yük fazla olduğunda veya veritabanı olanağı olmadığında bir veritabanı yerine yalıtılmış depolamayı kullanabilirsiniz. Ayrıca, uygulama bir veritabanı satırının sağladığından daha esnek ve karmaşık depo gerektirdiğinde, yalıtılmış depolama uygun bir alternatif olabilir.

Ünvan Açıklama
Yalıtım Türleri Farklı yalıtım türlerini açıklar.
Yalıtılmış Depolama Depolarını Edinme Yöntemi Kullanıcı ve derleme tarafından yalıtılmış bir depo elde etmek için IsolatedStorageFile sınıfının kullanımına bir örnek sağlar.
Nasıl yapılır: Yalıtılmış Depolama için Depoları Numaralandırma Kullanıcı için tüm yalıtılmış depolama alanının boyutunu hesaplamak amacıyla IsolatedStorageFile.GetEnumerator yöntemini nasıl kullanacağınızı gösterir.
Nasıl yapılır: Yalıtılmış Depolamadaki Depoları Silme Yalıtılmış depoları silmek için yönteminin iki farklı şekilde nasıl kullanılacağını IsolatedStorageFile.Remove gösterir.
Nasıl yapılır: Yalıtılmış Depolama ile Alan Tükenme Koşullarını Öngörme Bir yalıtılmış depodaki kalan alanın nasıl ölçüldüğünü gösterir.
Nasıl yapılır: Yalıtılmış Depolamada Dosya ve Dizinler Oluşturma Bir yalıtılmış depoda dosyalar ve dizinler oluşturma ile ilgili bazı örnekler sağlar.
Nasıl yapılır: Yalıtılmış Depolamada Mevcut Dosya ve Dizinleri Bulma Yalıtılmış depolamada dizin yapısının ve dosyaların nasıl okunduğunu gösterir.
Nasıl yapılır: Yalıtılmış Depolamadaki Dosyaları Okuma ve Yazma Bir yalıtılmış depolama dosyasına dize yazmak ve ardından geri okumak ile ilgili bir örnek sağlar.
Nasıl yapılır: Yalıtılmış Depolamadaki Dosya ve Dizinleri Silme Yalıtılmış depolama dosyalarının ve dizinlerinin nasıl silindiğini gösterir.
Dosya ve Akış G/Ç'si Zaman uyumlu ve zaman uyumsuz dosya ve veri akışı erişimini nasıl gerçekleştireceğinizi açıklar.

Referans