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ı yalıtılmış depoları kullanarak belirli bir kullanıcı için veri depolayabilir. 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. Verilen IsolatedStoragePermission kod özelliğin izin verdiğinden daha fazla depolama alanı kullanmayla UserQuota 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 gezici depolarda uygulanmaz. Bu nedenle kodun bunu kullanabilmesi için biraz daha yüksek bir izin düzeyi gerekir. Numaralandırma değerleri AssemblyIsolationByRoamingUser ve DomainIsolationByRoamingUser gezici bir kullanıcı için yalıtılmış depolama kullanma izni belirtin.

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 yazılan her dosyada tekrar denetlenir.

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 derlemeye göre yalıtım Her derlemenin etki alanı içinde ayrı bir alt deposu bulunur. Bu izni kullanan depolar örtülü olarak bilgisayara göre de 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 örtülü olarak bilgisayara göre de 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. içinde olduğu AssemblyIsolationByUsergibi, ancak kota olmadan hizmet reddi saldırısı riski artar.
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.

Güvenilmeyen verilerle ilgili olarak yalıtılmış depolama bileşenlerinin Kasa

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 anahtarla /machine çağrılırsa 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\kapsam için User .
  2. %APPDATA%\IsolatedStorage\: Örneğin, C:\Users\<username>\AppData\Roaming\IsolatedStorage\kapsam için User|Roaming .
  3. %PROGRAMDATA%\IsolatedStorage\: Örneğin, C:\ProgramData\IsolatedStorage\kapsam için Machine .

İ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|Roaming depolarını kullanan iki farklı kullanıcı hesabı birbirlerinin User 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 genelindeki depolama konumuna veri yazabilir ve ardından Bob'u makine genelindeki mağazadan okuması için etkilemeye çalışabilir. Bob bu mağazadan okuyan bir uygulama çalıştırdığında, bu uygulama Buraya yerleştirilen Mallory verileri üzerinde ancak Bob'un kullanıcı hesabı bağlamında ç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.

Ayrıcalık yükseltme

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

Bob'un uygulaması Mallory'nin dosyasını okuduğunda ve kilitlendiğinde veya düzgün çalışmayı durdurduğunda bir hizmet reddi saldırısı oluşur. 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ğazanın içine yanlış biçimlendirilmiş içerik içeren bir dosya yerleştirebiliyorsa şunları yapabilir:

  • Bob'un uygulamasının başlangıç yolunun başlarında özel durum oluşturması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 okurken, dosyanın kendisi makine genelindeki mağazada varmış gibi istemeden dosyasının içeriğini secret.txt okur. Bob'un uygulaması çıktığında, dosyayı makine genelindeki depoya yeniden kaydetmeye çalışırsa, dosyanın gerçek bir kopyasını *C:\ProgramData\Isolated Depolama* 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 IsolatedStorageFile.GetEnumerator(IsolatedStorageScope.Machine) çağırmayın veya aracını storeadm.exe /machine /listçağırmayın. 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 veya gibi tehlikeli serileştiriciler yerine gibi XmlSerializerBinaryFormatterNetDataContractSerializerdaha güvenli seri hale getiriciler 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>\Application Data

Gezici olmayan depolar =

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

<SYSTEMDRIVE>\Documents and Ayarlar\<user>\Application Data

Gezici olmayan depolar =

<SYSTEMDRIVE>\Documents and Ayarlar\user>\<Local Ayarlar\Application Data
Windows XP, Windows Server 2003 - temiz yükleme (Windows 2000 ve Windows 98'den yükseltme) Gezinme etkinleştirilmiş depolar =

<SYSTEMDRIVE>\Documents and Ayarlar\<user>\Application Data

Gezici olmayan depolar =

<SYSTEMDRIVE>\Documents and Ayarlar\user>\<Local Ayarlar\Application Data
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 denetimler. İ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 denetimler, veri depolarına kontrollü erişim sağlamak için yalıtılmış depolama kullanabilir.

  • 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 tutulduğu için, sunucu isteği yapan kullanıcının kimliğine bürünmelidir. Bu durumda veriler, uygulamanın kullanıcıları arasında ayrım yapmak için kullandığı kimlik olan sorumlunun kimliğine göre yalıtılır.

  • 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.
Nasıl yapılır: Yalıtılmış Depolama için Depoları Alma Kullanıcı ve derleme tarafından yalıtılmış bir depo elde etmek için sınıfını IsolatedStorageFile kullanma örneği 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 için yönteminin nasıl kullanılacağını IsolatedStorageFile.GetEnumerator 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 Dolu 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.

Başvuru