Yalıtım türleri

Yalıtılmış depolamaya erişim her zaman onu oluşturan kullanıcıyla sınırlıdır. Bu tür bir yalıtım uygulamak için ortak dil çalışma zamanı, işletim sisteminin tanıdığı kullanıcı kimliğiyle aynı algıyı kullanır. Bu, depo açıldığında kodun çalıştığı işlemle ilişkili kimliktir. Bu kimlik kimliği doğrulanmış bir kullanıcı kimliğidir, ancak kimliğe bürünme, geçerli kullanıcının kimliğinin dinamik olarak değişmesine neden olabilir.

Yalıtılmış depolamaya erişim, uygulamanın etki alanı ve derlemesiyle ilişkili kimliğe veya yalnızca derlemeye göre de kısıtlanır. Çalışma zamanı bu kimlikleri aşağıdaki yollarla elde eder:

  • Etki alanı kimliği, bir web uygulaması söz konusu olduğunda tam URL olabilecek uygulamanın kanıtını temsil eder. Kabuk tarafından barındırılan kod için etki alanı kimliği, uygulama dizin yolunu temel alabilir. Örneğin, yürütülebilir dosya C:\Office\MyApp.exe yolundan çalışıyorsa, etki alanı kimliği C:\Office\MyApp.exe olabilir.

  • Derleme kimliği, derlemenin kanıtıdır. Bu, derlemenin tanımlayıcı adı, derlemenin yazılım yayımcısı veya URL kimliği olabilen şifreleme dijital imzasından gelebilir. Bir derlemenin hem tanımlayıcı adı hem de yazılım yayımcısı kimliği varsa, yazılım yayımcısı kimliği kullanılır. Derleme İnternet'ten geliyorsa ve imzasızsa, URL kimliği kullanılır. Derlemeler ve tanımlayıcı adlar hakkında daha fazla bilgi için bkz . Bütünleştirilmiş Kodlarla Programlama.

  • Dolaşım depoları, gezici kullanıcı profili olan bir kullanıcıyla birlikte hareket eder. Dosyalar bir ağ dizinine yazılır ve kullanıcının oturum açtığı herhangi bir bilgisayara indirilir. Gezici kullanıcı profilleri hakkında daha fazla bilgi için bkz IsolatedStorageScope.Roaming. .

Yalıtılmış depolama, kullanıcı, etki alanı ve derleme kimliği kavramlarını birleştirerek verileri aşağıdaki yollarla yalıtabilir ve bunların her birinin kendi kullanım senaryoları vardır:

Bu yalıtımlardan biri bir gezici kullanıcı profiliyle birleştirilebilir. Daha fazla bilgi için Yalıtılmış Depolama ve Dolaşım bölümüne bakın.

Aşağıdaki çizimde depoların farklı kapsamlarda nasıl yalıtılmış olduğu gösterilmektedir:

Diagram that shows isolation by user and assembly.

Dolaşım depoları dışında, belirli bir bilgisayarın yerel depolama tesislerini kullandığından, yalıtılmış depolama her zaman bilgisayar tarafından örtük olarak yalıtılır.

Ö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.

Kullanıcı ve Derlemeye Göre Yalıtım

Veri deposunu kullanan derlemenin herhangi bir uygulamanın etki alanından erişilebilir olması gerektiğinde, kullanıcı ve derlemeye göre yalıtım uygun olur. Genellikle bu durumda yalıtılmış depolama, birden çok uygulamada geçerli olan ve kullanıcının adı veya lisans bilgileri gibi belirli bir uygulamaya bağlı olmayan verileri depolamak için kullanılır. Kullanıcı ve derleme tarafından yalıtılmış depolamaya erişmek için koda uygulamalar arasında bilgi aktarmak için güvenilmelidir. Genellikle, kullanıcı ve derlemeye göre yalıtıma intranetlerde izin verilir, ancak İnternet'te izin verilmez. Statik IsolatedStorageFile.GetStore yöntemi çağırmak ve bir kullanıcı ile derlemeyi IsolatedStorageScope geçirmek, bu tür bir yalıtımla depolama döndürür.

Aşağıdaki kod örneği, kullanıcı ve derleme tarafından yalıtılmış bir depoyu alır. Depoya nesnesi üzerinden isoFile erişilebilir.

IsolatedStorageFile^ isoFile =
    IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
        IsolatedStorageScope::Assembly, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
    IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
        IsolatedStorageScope.Assembly, Nothing, Nothing)

Kanıt parametrelerini kullanan bir örnek için bkz GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type). .

Yöntemi GetUserStoreForAssembly , aşağıdaki kod örneğinde gösterildiği gibi bir kısayol olarak kullanılabilir. Bu kısayol, dolaşım yapabilen mağazaları açmak için kullanılamaz; bu gibi durumlarda kullanın GetStore .

IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetUserStoreForAssembly();
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForAssembly();
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetUserStoreForAssembly()

Kullanıcı, Etki Alanı ve Derlemeye Göre Yalıtım

Uygulamanız özel veri deposu gerektiren bir üçüncü taraf derleme kullanıyorsa, özel verileri depolamak için yalıtılmış depolamayı kullanabilirsiniz. Kullanıcıya, etki alanına ve derlemeye göre yalıtım, yalnızca belirli bir derlemedeki kodun verilere erişebilmesini sağlar ve yalnızca derleme, depoyu oluştururken çalıştırılan uygulama tarafından kullanıldığında ve yalnızca deponun oluşturulduğu kullanıcı uygulamayı çalıştırdığında sağlar. Kullanıcı, etki alanı ve derlemeye göre yalıtım, üçüncü taraf derlemenin diğer uygulamalara veri sızdırmasını engeller. Yalıtılmış depolama kullanmak istediğinizi biliyor ancak hangi yalıtım türünü kullanacağınızdan emin değilseniz, bu yalıtım türü varsayılan tercihiniz olmalıdır. statik GetStore yöntemini IsolatedStorageFile çağırmak ve bir kullanıcı, etki alanı ve derleme IsolatedStorageScope geçirmek, bu tür bir yalıtımla depolama döndürür.

Aşağıdaki kod örneği kullanıcı, etki alanı ve derleme tarafından yalıtılmış bir depoyu alır. Depoya nesnesi üzerinden isoFile erişilebilir.

IsolatedStorageFile^ isoFile =
    IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
        IsolatedStorageScope::Domain |
        IsolatedStorageScope::Assembly, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
        IsolatedStorageScope.Domain |
        IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
        IsolatedStorageScope.Domain Or _
        IsolatedStorageScope.Assembly, Nothing, Nothing)

Aşağıdaki kod örneğinde gösterildiği gibi kısayol olarak başka bir yöntem kullanılabilir. Bu kısayol, dolaşım yapabilen mağazaları açmak için kullanılamaz; bu gibi durumlarda kullanın GetStore .

IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetUserStoreForDomain();
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForDomain();
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetUserStoreForDomain()

Ayrık Depolama ve Dolaşım

Gezici kullanıcı profilleri, kullanıcının ağda bir kimlik ayarlamasını ve bu kimliği kullanarak tüm kişiselleştirilmiş ayarları taşıyarak herhangi bir ağ bilgisayarında oturum açmasını sağlayan bir Windows özelliğidir. Yalıtılmış depolama kullanan bir derleme, kullanıcının yalıtılmış depolama alanının gezici kullanıcı profiliyle birlikte taşınması gerektiğini belirtebilir. Dolaşım, kullanıcı ve derlemeye göre yalıtımla birlikte veya kullanıcı, etki alanı ve derlemeye göre yalıtım ile birlikte kullanılabilir. Dolaşım kapsamı kullanılmıyorsa, bir gezici kullanıcı profili kullanılsa bile depolar dolaşıma alınmaz.

Aşağıdaki kod örneği, kullanıcı ve derleme tarafından yalıtılmış bir dolaşım deposu alır. Depoya nesnesi üzerinden isoFile erişilebilir.

IsolatedStorageFile^ isoFile =
    IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
        IsolatedStorageScope::Assembly |
        IsolatedStorageScope::Roaming, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
        IsolatedStorageScope.Assembly |
        IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
        IsolatedStorageScope.Assembly Or _
        IsolatedStorageScope.Roaming, Nothing, Nothing)

Kullanıcı, etki alanı ve uygulama tarafından yalıtılmış bir dolaşım deposu oluşturmak için bir etki alanı kapsamı eklenebilir. Aşağıdaki kod örneği bunu gösterir.

IsolatedStorageFile^ isoFile =
    IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
        IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain |
        IsolatedStorageScope::Roaming, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
        IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain |
        IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
        IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain Or _
        IsolatedStorageScope.Roaming, Nothing, Nothing)

Ayrıca bkz.