IsolatedStorageContainment Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
[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
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}")>]
type IsolatedStorageContainment =
[<System.Serializable>]
type IsolatedStorageContainment =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type IsolatedStorageContainment =
type IsolatedStorageContainment =
Public Enum IsolatedStorageContainment
- Devralma
- Ö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. Windows kullanıcı veri dolaşımı etkinse depolama alanı dolaşı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. |
ApplicationIsolationByUser | 21 | Depolama önce kullanıcı, ardından uygulama tarafından yalıtılır. Depolama da bilgisayar 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. |
AssemblyIsolationByMachine | 64 | Depolama önce bilgisayar ve 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, belirli 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ı ve ardından derleme kanıtı tarafından yalıtılır. Windows kullanıcı veri dolaşımı etkinse depolama alanı dolaşıma açı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, belirli 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ı ve ardından kod derlemesi tarafından yalıtılır. Depolama da bilgisayar 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, belirli 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. Windows kullanıcı veri dolaşımı etkinse depolama alanı dolaşıma açı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. |
DomainIsolationByUser | 16 | Depolama önce kullanıcı, ardından etki alanı ve derleme tarafından yalıtılır. Depolama da bilgisayar tarafından 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 verilmiyor. |
UnrestrictedIsolatedStorage | 240 | Yalıtılmış depolama 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
Dikkat
Kod Erişim Güvenliği (CAS), .NET Framework ve .NET'in tüm sürümlerinde kullanım dışı bırakılmıştır. .NET'in son sürümleri CAS ek açıklamalarını dikkate almaz ve CAS ile ilgili API'ler kullanılıyorsa hata üretir. Geliştiriciler, güvenlik görevlerini yerine getirmek için alternatif yöntemler aramalıdır.
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 kendi dosya alanı atanı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, tanımlayıcı adla (örneğin, Microsoft.Office.* veya Microsoft.Office.Word), yayımcıya (ortak anahtara göre), URL'ye (örneğin,http://www.fourthcoffee.com/process/grind.htm
), siteye veya bölgeye göre şifresel olarak tanımlanır.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 dizin 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 bu derlemedeki kodda özeldir ve verilere erişebilir. Veri deposu da çalıştırıldığı uygulama tarafından yalıtılır, böylece derleme verileri diğer uygulamalara sunarak 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ış depolamayı kullanmasına izin verilip verilmeyeceğini belirleyen bayrakları ve kullanıyorsa hangi kimlik bileşimlerinin bunu kullanmasına izin verileceğini gösterir. Ayrıca, bir uygulamanın bilgileri bir kullanıcıyla 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).