IsolatedStorageContainment Sabit listesi

Tanım

Dikkat

Code Access Security is not supported or honored by the runtime.

Yalıtılmış depolamanın izin verilen kullanımını belirtir.

public enum class IsolatedStorageContainment
public enum IsolatedStorageContainment
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum IsolatedStorageContainment
[System.Serializable]
public enum IsolatedStorageContainment
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum IsolatedStorageContainment
type IsolatedStorageContainment = 
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type IsolatedStorageContainment = 
[<System.Serializable>]
type IsolatedStorageContainment = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type IsolatedStorageContainment = 
Public Enum IsolatedStorageContainment
Devralma
IsolatedStorageContainment
Öznitelikler

Alanlar

AdministerIsolatedStorageByUser 112

Kullanıcı mağazası için sınırsız yönetim yeteneği. Kullanıcının kendi etki alanı/derleme kimliği dışında tüm kullanıcı deposunun göz atılmasına ve silinmesine izin verir, ancak okuma erişimine izin vermiyor.

ApplicationIsolationByMachine 69

Depolama önce bilgisayar, ardından uygulama tarafından yalıtılır. Bu, herhangi bir etki alanı bağlamında erişilebilen uygulama için bir veri deposu sağlar. Uygulama başına veri bölmesi, uygulamalar arasında belirli Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek bir "tünel" sağladığından ek güven gerektirir.

ApplicationIsolationByRoamingUser 101

Depolama önce kullanıcı, ardından uygulama kanıtı tarafından yalıtılır. Depolama, Windows kullanıcı veri dolaşımı etkinleştirilirse dolaşıma devam eder. Bu, herhangi bir etki alanı bağlamında erişilebilen uygulama için bir veri deposu sağlar. Uygulama başına veri bölmesi, uygulamalar arasında belirli Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek bir "tünel" sağladığından ek güven gerektirir.

ApplicationIsolationByUser 21

Depolama önce kullanıcı, ardından uygulama tarafından yalıtılır. Depolama bilgisayar tarafından da yalıtılır. Bu, herhangi bir etki alanı bağlamında erişilebilen uygulama için bir veri deposu sağlar. Uygulama başına veri bölmesi, uygulamalar arasında belirli Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek bir "tünel" sağladığından ek güven gerektirir.

AssemblyIsolationByMachine 64

Depolama önce bilgisayar, ardından kod derlemesi tarafından yalıtılır. Bu, herhangi bir etki alanı bağlamında erişilebilen derleme için bir veri deposu sağlar. Derleme başına veri bölmesi, özellikle Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek uygulamalar arasında bir "tünel" sağladığından ek güven gerektirir.

AssemblyIsolationByRoamingUser 96

Depolama önce kullanıcı, ardından derleme kanıtı tarafından yalıtılır. Depolama, Windows kullanıcı veri dolaşımı etkinleştirilirse dolaşıma devam eder. Bu, herhangi bir etki alanı bağlamında erişilebilen derleme için bir veri deposu sağlar. Derleme başına veri bölmesi, özellikle Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek uygulamalar arasında bir "tünel" sağladığından ek güven gerektirir.

AssemblyIsolationByUser 32

Depolama önce kullanıcı, ardından kod derlemesi tarafından yalıtılır. Depolama bilgisayar tarafından da yalıtılır. Bu, herhangi bir etki alanı bağlamında erişilebilen derleme için bir veri deposu sağlar. Derleme başına veri bölmesi, özellikle Web sitelerindeki uygulamaların veri yalıtımını tehlikeye atabilecek uygulamalar arasında bir "tünel" sağladığından ek güven gerektirir.

DomainIsolationByMachine 48

Depolama önce bilgisayar, ardından etki alanı ve derleme tarafından yalıtılır. Verilere yalnızca aynı uygulama bağlamında ve yalnızca aynı bilgisayarda çalıştırıldığında erişilebilir. Bu, üçüncü taraf bir derleme özel bir veri deposu tutmak istediğinde yararlıdır.

DomainIsolationByRoamingUser 80

Depolama önce kullanıcı, ardından etki alanı ve derleme tarafından yalıtılır. Depolama, Windows kullanıcı veri dolaşımı etkinleştirilirse dolaşıma devam eder. Verilere yalnızca aynı uygulama bağlamında ve yalnızca aynı kullanıcı tarafından çalıştırıldığında erişilebilir. Bu, üçüncü taraf bir derleme özel bir veri deposu tutmak istediğinde yararlıdır.

DomainIsolationByUser 16

Depolama önce kullanıcı, ardından etki alanı ve derleme tarafından yalıtılır. Depolama bilgisayar tarafından da yalıtılır. Verilere yalnızca aynı uygulama bağlamında ve yalnızca aynı kullanıcı tarafından çalıştırıldığında erişilebilir. Bu, üçüncü taraf bir derleme özel bir veri deposu tutmak istediğinde yararlıdır.

None 0

Yalıtılmış depolama kullanımına izin verilmez.

UnrestrictedIsolatedStorage 240

Yalıtılmış depolamanın kullanımına kısıtlama olmadan izin verilir. Kod, etki alanının veya derlemenin kimliğine bakılmaksızın kullanıcı deposunun herhangi bir bölümüne tam erişime sahiptir. Yalıtılmış depolamanın bu kullanımı, yalıtılmış depolama veri deposunun içeriğini listeleme özelliğini içerir.

Örnekler

Bu örnekte CLR'ye bu derlemedeki kodun için gerekli IsolatedStoragePermission olduğunu ve ayrıca yalıtılmış depolamadan nasıl yazılıp okunduğunun nasıl belirtildiği gösterilmektedir.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::IO::IsolatedStorage;
using namespace System::IO;


static void WriteIsolatedStorage()
{
    try
    {
        // Attempt to create a storage file that is isolated by
        // user and assembly. IsolatedStorageFilePermission
        // granted to the attribute at the top of this file
        // allows CLR to load this assembly and execution of this
        // statement.
        Stream^ fileCreateStream = gcnew
            IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Create,
            IsolatedStorageFile::GetUserStoreForAssembly());

        StreamWriter^ streamWriter = gcnew StreamWriter(
            fileCreateStream);
        try
        {
            // Write some data out to the isolated file.

            streamWriter->Write("This is some test data.");
            streamWriter->Close();	
        }
        finally
        {
            delete fileCreateStream;
            delete streamWriter;
        } 
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }

    try
    {
        Stream^ fileOpenStream =
            gcnew IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Open,
            IsolatedStorageFile::GetUserStoreForAssembly());
        // Attempt to open the file that was previously created.

        StreamReader^ streamReader = gcnew StreamReader(
            fileOpenStream);
        try
        { 
            // Read the data from the file and display it.

            Console::WriteLine(streamReader->ReadLine());
            streamReader->Close();
        }
        finally
        {
            delete fileOpenStream;
            delete streamReader;
        }
    }
    catch (FileNotFoundException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
// Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
// This restricts the called methods to working only with storage files that are isolated 
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction::PermitOnly, UsageAllowed = IsolatedStorageContainment::AssemblyIsolationByUser)]
int main()
{
    WriteIsolatedStorage();
}

// This code produces the following output.
//
//  This is some test data.
using System;
using System.Security.Permissions;
using System.IO.IsolatedStorage;
using System.IO;

// Notify the CLR to only grant IsolatedStorageFilePermission to called methods.
// This restricts the called methods to working only with storage files that are isolated
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser)]
public sealed class App
{
    static void Main()
    {
        WriteIsolatedStorage();
    }
    private static void WriteIsolatedStorage()
    {
        // Attempt to create a storage file that is isolated by user and assembly.
        // IsolatedStorageFilePermission granted to the attribute at the top of this file
        // allows CLR to load this assembly and execution of this statement.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly()))
        {

            // Write some data out to the isolated file.
            using (StreamWriter sw = new StreamWriter(s))
            {
                sw.Write("This is some test data.");
            }
        }

        // Attempt to open the file that was previously created.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly()))
        {
            // Read the data from the file and display it.
            using (StreamReader sr = new StreamReader(s))
            {
                Console.WriteLine(sr.ReadLine());
            }
        }
    }
}

// This code produces the following output.
//
//  Some test data.
Option Strict On
Imports System.Security.Permissions
Imports System.IO.IsolatedStorage
Imports System.IO


' Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
' This restricts the called methods to working only with storage files that are isolated 
' by user and assembly.
<IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed:=IsolatedStorageContainment.AssemblyIsolationByUser)> _
Public NotInheritable Class App

    Shared Sub Main()
        WriteIsolatedStorage()
    End Sub
    Shared Sub WriteIsolatedStorage()
        ' Attempt to create a storage file that is isolated by user and assembly.
        ' IsolatedStorageFilePermission granted to the attribute at the top of this file 
        ' allows CLR to load this assembly and execution of this statement.
        Dim s As New IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly())
        Try

            ' Write some data out to the isolated file.
            Dim sw As New StreamWriter(s)
            Try
                sw.Write("This is some test data.")
            Finally
                sw.Dispose()
            End Try
        Finally
            s.Dispose()
        End Try

        ' Attempt to open the file that was previously created.
        Dim t As New IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly())
        Try
            ' Read the data from the file and display it.
            Dim sr As New StreamReader(t)
            Try
                Console.WriteLine(sr.ReadLine())
            Finally
                sr.Dispose()
            End Try
        Finally
            t.Dispose()
        End Try

    End Sub
End Class

' This code produces the following output.
'
'  Some test data.

Açıklamalar

Yalıtılmış depolama, bir uygulama veya bileşen tarafından kullanılmak üzere benzersiz bir depolama alanı belirlemek için kanıt kullanır. Bir derlemenin kimliği, bu derleme tarafından kullanılmak üzere bir sanal dosya sisteminin kökünü benzersiz olarak belirler. Bu nedenle, dosya sistemi veya kayıt defteri gibi ortak bir kaynağı paylaşan birçok uygulama ve bileşen yerine, her birinin kendisine doğal olarak atanmış kendi dosya alanı vardır.

Yalıtılmış depolama atanırken dört temel yalıtım kapsamı kullanılır:

  • User - Kodun kapsamı her zaman geçerli kullanıcıya göre belirlenmiştir. Aynı derleme, farklı kullanıcılar tarafından çalıştırılırken farklı depolar alır.

  • Machine - Kodun kapsamı her zaman makineye göre belirlenmiştir. Aynı derleme, aynı makinede farklı kullanıcılar tarafından çalıştırılırken aynı depoları alır.

  • Assembly- Kod, şifreli olarak tanımlayıcı adla (örneğin, Microsoft.Office.* veya Microsoft.Office) tanımlanır. Word), yayımcıya göre (ortak anahtara göre), URL'ye göre (örneğin, http://www.fourthcoffee.com/process/grind.htm), siteye veya bölgeye göre.

  • Domain - Kod, uygulama etki alanıyla ilişkili kanıtlara göre tanımlanır. Web uygulaması kimliği, sitenin URL'sinden veya Web sayfasının URL'si, sitesi veya bölgesi tarafından türetilir. Yerel kod kimliği, uygulama dizini yolunu temel alır.

URL, site ve bölge tanımları için bkz UrlIdentityPermission. , SiteIdentityPermissionve ZoneIdentityPermission.

Bu kimlikler birlikte gruplandırılır ve bu durumda istenen yalıtılmış depolama alanı oluşturulana kadar kimlikler birbiri ardına uygulanır. Geçerli gruplandırmalar User+Assembly ve User+Assembly+Domain şeklindedir. Bu kimlik gruplandırma birçok farklı uygulamada yararlıdır.

Veriler etki alanı, kullanıcı ve derleme tarafından depolanıyorsa, veriler yalnızca o derlemedeki kodun verilere erişebileceği özeldir. Veri deposu da çalıştığı uygulama tarafından yalıtılır, böylece derleme verileri diğer uygulamalara göstererek olası bir sızıntıyı temsil etmez.

Derlemeye ve kullanıcıya göre yalıtım, birden çok uygulamada geçerli olan kullanıcı verileri için kullanılabilir; örneğin, lisans bilgileri veya kullanıcının bir uygulamadan bağımsız kişisel bilgileri (ad, kimlik doğrulama kimlik bilgileri vb.)

IsolatedStorageContainment , bir uygulamanın yalıtılmış depolama kullanmasına izin verilip verilmeyeceğini ve kullanılıyorsa hangi kimlik birleşimlerinin bunu kullanmasına izin verileceğini belirleyen bayrakları kullanıma sunar. Ayrıca, bir uygulamanın bilgileri bir kullanıcıyla birlikte dolaşabilecek bir konumda depolamasına izin verilip verilmeyeceğini de belirler (Windows Gezici Kullanıcı Profilleri veya Klasör Yeniden Yönlendirme yapılandırılmalıdır).

Şunlara uygulanır

Ayrıca bkz.