Aracılığıyla paylaş


FileIOPermission Sınıf

Tanım

Dikkat

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

Dosya ve klasörlere erişme becerisini denetler. Bu sınıf devralınamaz.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Devralma
FileIOPermission
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örneklerde kullanan FileIOPermissionkod gösterilmektedir. Aşağıdaki iki kod satırı sonrasında nesnesi f , istemci bilgisayarın yerel disklerindeki tüm dosyaları okuma iznini temsil eder. Kod örneği daha sonra uygulamanın dosyaları okuma iznine sahip olup olmadığını belirlemek için izin ister.

FileIOPermission^ f = gcnew FileIOPermission( PermissionState::None );
f->AllLocalFiles = FileIOPermissionAccess::Read;
try
{
    f->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
    f.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
Try
    f.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Aşağıdaki iki kod satırı sonrasında nesnesi f2 , C:\test_r okuma ve C:\example\out.txt okuma ve yazma izinlerini temsil eder. Read ve Write daha önce açıklandığı gibi dosya/klasör izinlerini temsil eder. İzin oluşturulduktan sonra kod, uygulamanın dosyayı okuma ve yazma hakkına sahip olup olmadığını belirlemek için izin ister.

FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\test_r" );
f2->AddPathList( (FileIOPermissionAccess) (FileIOPermissionAccess::Write | FileIOPermissionAccess::Read), "C:\\example\\out.txt" );
try
{
    f2->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or FileIOPermissionAccess.Read, "C:\example\out.txt")
Try
    f2.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

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.

Bu izin, tarafından FileIOPermissionAccesssağlanan aşağıdaki dört tür dosya GÇ erişimi arasında ayrım yapar:

  • Read: Dosyanın içeriğine erişimi okuyun veya dosya hakkındaki bilgilere (uzunluğu veya son değişiklik zamanı gibi) erişin.

  • Write: Dosyanın içeriğine erişim veya dosyayla ilgili adı gibi bilgileri değiştirmek için erişim yazın. Ayrıca silmeye ve üzerine yazmaya izin verir.

  • Append: Yalnızca bir dosyanın sonuna yazabilme. Okuma yeteneği yok.

  • PathDiscovery: Yoldaki bilgilere erişim. Bu, yoldaki kullanıcı adları gibi hassas bilgilerin yanı sıra yolda gösterilen dizin yapısı hakkındaki bilgilerin korunmasına yardımcı olur. Bu değer, yol tarafından temsil edilen dosyalara veya klasörlere erişim izni vermez.

Not

Bir Write derlemeye erişim vermek, derlemeye tam güven vermeye benzer. Bir uygulama dosya sistemine yazmamalıdır, erişime sahip Write olmamalıdır.

Tüm bu izinler bağımsızdır; başka bir deyişle, bir iznin hakları diğer bir hak anlamına gelmez. Örneğin, izin veya WriteAppendizni Read anlamına gelmez. Birden fazla izin isteniyorsa, aşağıdaki kod örneğinde gösterildiği gibi bit düzeyinde VEYA kullanılarak birleştirilebilir. Dosya izni kurallı mutlak yollar açısından tanımlanır; çağrıları her zaman kurallı dosya yollarıyla yapılmalıdır.

FileIOPermission dosya ve klasörlerdeki korumalı işlemleri açıklar. sınıfı, File dosya ve klasörlere güvenli erişim sağlamaya yardımcı olur. Dosya tanıtıcısı oluşturulduğunda güvenlik erişim denetimi gerçekleştirilir. Denetim oluşturma zamanında yapıldığında güvenlik denetiminin performans etkisi en aza indirilir. Dosya açma işlemi bir kez gerçekleşirken okuma ve yazma birden çok kez gerçekleşiyor. Dosya açıldıktan sonra başka denetim yapılmaz. Nesne güvenilmeyen bir çağırana geçirilirse kötüye kullanılabilir. Örneğin, dosya tanıtıcıları daha az izne sahip kodun bunlara erişebildiği genel genel statiklerde depolanmamalıdır.

FileIOPermissionAccess dosya veya klasörde gerçekleştirilebilecek eylemleri belirtir. Buna ek olarak, bu eylemler karmaşık örnekler oluşturmak için bit düzeyinde VEYA kullanılarak birleştirilebilir.

Klasöre erişim, içerdiği tüm dosyalara ve alt klasörlerindeki tüm dosya ve klasörlere erişim anlamına gelir. Örneğin, Read C:\folder1\ erişimi, C:\folder1\file1.txt, C:\klasör1\klasör2\, C:\folder1\folder2\file2.txt vb. erişim anlamına gelir Read .

Not

.NET Framework 4'teki .NET Framework sürümlerinde, güvenilir kod tarafından sistem kaynaklarına yanlışlıkla erişimi önlemek için yöntemini kullanabilirsinizCodeAccessPermission.Deny. Deny artık kullanımdan kaldırıldı ve kaynaklara erişim artık yalnızca bir derleme için verilen izin kümesi tarafından belirleniyor. Dosyalara erişimi sınırlamak için korumalı alanda kısmen güvenilen kodu çalıştırmanız ve yalnızca kodun erişmesine izin verilen kaynaklara izinler atamanız gerekir. Korumalı alanda uygulama çalıştırma hakkında bilgi için bkz . Nasıl yapılır: Korumalı Alanda Kısmen Güvenilen Kod Çalıştırma.

Oluşturucular

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Geçersiz.

Belirlenen dosya veya dizine belirtilen erişime ve dosya denetimi bilgilerine belirtilen erişim haklarına sahip sınıfının yeni bir örneğini FileIOPermission başlatır.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Geçersiz.

Belirlenen dosya ve dizinlere belirtilen erişime ve dosya denetimi bilgilerine belirtilen erişim haklarına sahip sınıfının yeni bir örneğini FileIOPermission başlatır.

FileIOPermission(FileIOPermissionAccess, String)
Geçersiz.

Belirtilen dosya veya dizine belirtilen erişimle sınıfının yeni bir örneğini FileIOPermission başlatır.

FileIOPermission(FileIOPermissionAccess, String[])
Geçersiz.

Belirtilen dosyalara ve dizinlere belirtilen erişimle sınıfının yeni bir örneğini FileIOPermission başlatır.

FileIOPermission(PermissionState)
Geçersiz.

Belirtilen şekilde tamamen kısıtlanmış veya kısıtlanmamış izinlerle sınıfının yeni bir örneğini FileIOPermission başlatır.

Özellikler

AllFiles
Geçersiz.

Tüm dosyalara izin verilen erişimi alır veya ayarlar.

AllLocalFiles
Geçersiz.

Tüm yerel dosyalara izin verilen erişimi alır veya ayarlar.

Yöntemler

AddPathList(FileIOPermissionAccess, String)
Geçersiz.

Belirtilen dosya veya dizin için erişimi iznin var olan durumuna ekler.

AddPathList(FileIOPermissionAccess, String[])
Geçersiz.

Belirtilen dosyalar ve dizinler için erişimi iznin var olan durumuna ekler.

Assert()
Geçersiz.

Yığında daha yüksek arayanlara kaynağa erişim izni verilmemiş olsa bile çağıran kodun bu yöntemi çağıran kod aracılığıyla izin talebiyle korunan kaynağa erişebileceğini bildirir. kullanmak Assert() güvenlik sorunları oluşturabilir.

(Devralındığı yer: CodeAccessPermission)
Copy()
Geçersiz.

Geçerli iznin özdeş bir kopyasını oluşturur ve döndürür.

Demand()
Geçersiz.

Çağrı yığınında daha yüksek olan tüm arayanlara geçerli örnek tarafından belirtilen izin verilmediyse, çalışma zamanında bir SecurityException zorlar.

(Devralındığı yer: CodeAccessPermission)
Deny()
Geçersiz.
Geçersiz.

Çağrı yığınında daha yüksek çağıranların geçerli örnek tarafından belirtilen kaynağa erişmek için bu yöntemi çağıran kodu kullanmasını engeller.

(Devralındığı yer: CodeAccessPermission)
Equals(Object)
Geçersiz.

Belirtilen FileIOPermission nesnenin geçerli FileIOPermissionöğesine eşit olup olmadığını belirler.

Equals(Object)
Geçersiz.

Belirtilen CodeAccessPermission nesnenin geçerli CodeAccessPermissionöğesine eşit olup olmadığını belirler.

(Devralındığı yer: CodeAccessPermission)
FromXml(SecurityElement)
Geçersiz.

Xml kodlamasından belirtilen duruma sahip bir izni yeniden oluşturur.

GetHashCode()
Geçersiz.

Karma algoritmalarında ve karma tablosu gibi veri yapılarında kullanıma uygun nesne için FileIOPermission karma kodu alır.

GetHashCode()
Geçersiz.

Karma algoritmalarında ve karma tablosu gibi veri yapılarında kullanıma uygun nesne için CodeAccessPermission karma kodu alır.

(Devralındığı yer: CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Geçersiz.

Belirtilen FileIOPermissionAccessile tüm dosyaları ve dizinleri alır.

GetType()
Geçersiz.

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Intersect(IPermission)
Geçersiz.

Geçerli iznin ve belirtilen iznin kesişimi olan bir izin oluşturur ve döndürür.

IsSubsetOf(IPermission)
Geçersiz.

Geçerli iznin belirtilen iznin bir alt kümesi olup olmadığını belirler.

IsUnrestricted()
Geçersiz.

Geçerli iznin kısıtlanmamış olup olmadığını gösteren bir değer döndürür.

MemberwiseClone()
Geçersiz.

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
PermitOnly()
Geçersiz.

Çağrı yığınında daha yüksek çağıranların geçerli örnek tarafından belirtilen kaynak dışında tüm kaynaklara erişmek için bu yöntemi çağıran kodu kullanmasını engeller.

(Devralındığı yer: CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Geçersiz.

Belirtilen erişimi belirtilen dosyaya veya dizine ayarlar ve iznin mevcut durumunu değiştirir.

SetPathList(FileIOPermissionAccess, String[])
Geçersiz.

Belirtilen dosya ve dizinlere belirtilen erişimi ayarlar ve belirtilen erişim için geçerli durumu yeni yol kümesiyle değiştirir.

ToString()
Geçersiz.

Geçerli izin nesnesinin dize gösterimini oluşturur ve döndürür.

(Devralındığı yer: CodeAccessPermission)
ToXml()
Geçersiz.

İznin ve geçerli durumunun XML kodlamasını oluşturur.

Union(IPermission)
Geçersiz.

Geçerli iznin ve belirtilen iznin birleşimi olan bir izin oluşturur.

Şunlara uygulanır

Ayrıca bkz.