Share via


FileIOPermission Kelas

Definisi

Perhatian

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

Mengontrol kemampuan untuk mengakses file dan folder. Kelas ini tidak dapat diwariskan.

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
Warisan
FileIOPermission
Atribut
Penerapan

Contoh

Contoh berikut mengilustrasikan kode yang menggunakan FileIOPermission. Setelah dua baris kode berikut, objek f mewakili izin untuk membaca semua file di disk lokal komputer klien. Contoh kode kemudian menuntut izin untuk menentukan apakah aplikasi memiliki izin untuk membaca file.

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

Setelah dua baris kode berikut, objek f2 mewakili izin untuk membaca C:\test_r dan membaca dan menulis ke C:\example\out.txt. Read dan Write mewakili izin file/folder seperti yang dijelaskan sebelumnya. Setelah membuat izin, kode menuntut izin untuk menentukan apakah aplikasi memiliki hak untuk membaca dan menulis ke file.

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

Keterangan

Perhatian

Keamanan Akses Kode (CAS) tidak digunakan lagi di semua versi .NET Framework dan .NET. Versi terbaru .NET tidak mematuhi anotasi CAS dan menghasilkan kesalahan jika API terkait CAS digunakan. Pengembang harus mencari cara alternatif untuk menyelesaikan tugas keamanan.

Izin ini membedakan antara empat jenis akses IO file berikut yang disediakan oleh FileIOPermissionAccess:

  • Read: Membaca akses ke konten file atau akses ke informasi tentang file, seperti panjang atau waktu modifikasi terakhirnya.

  • Write: Tulis akses ke konten file atau akses untuk mengubah informasi tentang file, seperti namanya. Juga memungkinkan penghapusan dan penimpaan.

  • Append: Kemampuan untuk menulis ke akhir file saja. Tidak ada kemampuan untuk membaca.

  • PathDiscovery: Akses ke informasi di jalur itu sendiri. Ini membantu melindungi informasi sensitif di jalur, seperti nama pengguna, serta informasi tentang struktur direktori yang terungkap di jalur. Nilai ini tidak memberikan akses ke file atau folder yang diwakili oleh jalur.

Catatan

Memberikan Write akses ke assembly mirip dengan memberinya kepercayaan penuh. Jika aplikasi tidak boleh menulis ke sistem file, aplikasi seharusnya tidak memiliki Write akses.

Semua izin ini independen, yang berarti bahwa hak untuk satu tidak menyiratkan hak kepada yang lain. Misalnya, Write izin tidak menyiratkan izin ke Read atau Append. Jika lebih dari satu izin diinginkan, izin tersebut dapat digabungkan menggunakan bitwise OR seperti yang ditunjukkan dalam contoh kode berikut. Izin file didefinisikan dalam hal jalur absolut kanonis; panggilan harus selalu dilakukan dengan jalur file kanonis.

FileIOPermission menjelaskan operasi yang dilindungi pada file dan folder. Kelas ini File membantu menyediakan akses aman ke file dan folder. Pemeriksaan akses keamanan dilakukan ketika handel ke file dibuat. Dengan melakukan pemeriksaan pada waktu pembuatan, dampak performa pemeriksaan keamanan diminimalkan. Membuka file terjadi sekali, sementara membaca dan menulis dapat terjadi beberapa kali. Setelah file dibuka, tidak ada pemeriksaan lebih lanjut yang dilakukan. Jika objek diteruskan ke penelepon yang tidak tepercaya, objek dapat disalahgunakan. Misalnya, handel file tidak boleh disimpan dalam statis global publik di mana kode dengan lebih sedikit izin dapat mengaksesnya.

FileIOPermissionAccess menentukan tindakan yang dapat dilakukan pada file atau folder. Selain itu, tindakan ini dapat digabungkan menggunakan bitwise OR untuk membentuk instans kompleks.

Akses ke folder menyiratkan akses ke semua file yang ada di dalamnya, serta akses ke semua file dan folder di subfoldernya. Misalnya, Read akses ke C:\folder1\ menyiratkan Read akses ke C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, dan sebagainya.

Catatan

Dalam versi .NET Framework sebelum .NET Framework 4, Anda dapat menggunakan CodeAccessPermission.Deny metode untuk mencegah akses yang tidak disengaja ke sumber daya sistem dengan kode tepercaya. Deny sekarang usang, dan akses ke sumber daya sekarang ditentukan hanya oleh izin yang diberikan yang ditetapkan untuk perakitan. Untuk membatasi akses ke file, Anda harus menjalankan sebagian kode tepercaya di kotak pasir dan menetapkannya izin hanya ke sumber daya yang diizinkan untuk diakses oleh kode. Untuk informasi tentang menjalankan aplikasi di kotak pasir, lihat Cara: Menjalankan Kode Tepercaya Sebagian di Kotak Pasir.

Konstruktor

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Kedaluwarsa.

Menginisialisasi instans FileIOPermission baru kelas dengan akses yang ditentukan ke file atau direktori yang ditunjuk dan hak akses yang ditentukan untuk informasi kontrol file.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Kedaluwarsa.

Menginisialisasi instans FileIOPermission baru kelas dengan akses yang ditentukan ke file dan direktori yang ditunjuk dan hak akses yang ditentukan untuk informasi kontrol file.

FileIOPermission(FileIOPermissionAccess, String)
Kedaluwarsa.

Menginisialisasi instans FileIOPermission baru kelas dengan akses yang ditentukan ke file atau direktori yang ditunjuk.

FileIOPermission(FileIOPermissionAccess, String[])
Kedaluwarsa.

Menginisialisasi instans FileIOPermission baru kelas dengan akses yang ditentukan ke file dan direktori yang ditunjuk.

FileIOPermission(PermissionState)
Kedaluwarsa.

Menginisialisasi instans FileIOPermission baru kelas dengan izin yang sepenuhnya dibatasi atau tidak dibatasi seperti yang ditentukan.

Properti

AllFiles
Kedaluwarsa.

Mendapatkan atau mengatur akses yang diizinkan ke semua file.

AllLocalFiles
Kedaluwarsa.

Mendapatkan atau mengatur akses yang diizinkan ke semua file lokal.

Metode

AddPathList(FileIOPermissionAccess, String)
Kedaluwarsa.

Menambahkan akses untuk file atau direktori yang ditentukan ke status izin yang ada.

AddPathList(FileIOPermissionAccess, String[])
Kedaluwarsa.

Menambahkan akses untuk file dan direktori yang ditentukan ke status izin yang ada.

Assert()
Kedaluwarsa.

Menyatakan bahwa kode panggilan dapat mengakses sumber daya yang dilindungi oleh permintaan izin melalui kode yang memanggil metode ini, bahkan jika penelepon yang lebih tinggi di tumpukan belum diberikan izin untuk mengakses sumber daya. Menggunakan Assert() dapat membuat masalah keamanan.

(Diperoleh dari CodeAccessPermission)
Copy()
Kedaluwarsa.

Membuat dan mengembalikan salinan identik dari izin saat ini.

Demand()
Kedaluwarsa.

SecurityException Memaksa pada durasi jika semua penelepon yang lebih tinggi dalam tumpukan panggilan belum diberikan izin yang ditentukan oleh instans saat ini.

(Diperoleh dari CodeAccessPermission)
Deny()
Kedaluwarsa.
Kedaluwarsa.

Mencegah penelepon yang lebih tinggi dalam tumpukan panggilan menggunakan kode yang memanggil metode ini untuk mengakses sumber daya yang ditentukan oleh instans saat ini.

(Diperoleh dari CodeAccessPermission)
Equals(Object)
Kedaluwarsa.

Menentukan apakah objek yang ditentukan FileIOPermission sama dengan objek saat ini FileIOPermission.

Equals(Object)
Kedaluwarsa.

Menentukan apakah objek yang ditentukan CodeAccessPermission sama dengan objek saat ini CodeAccessPermission.

(Diperoleh dari CodeAccessPermission)
FromXml(SecurityElement)
Kedaluwarsa.

Mengonstruksi ulang izin dengan status tertentu dari pengodean XML.

GetHashCode()
Kedaluwarsa.

Mendapatkan kode hash untuk FileIOPermission objek yang cocok untuk digunakan dalam algoritma hashing dan struktur data seperti tabel hash.

GetHashCode()
Kedaluwarsa.

Mendapatkan kode hash untuk CodeAccessPermission objek yang cocok untuk digunakan dalam algoritma hashing dan struktur data seperti tabel hash.

(Diperoleh dari CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Kedaluwarsa.

Mendapatkan semua file dan direktori dengan yang ditentukan FileIOPermissionAccess.

GetType()
Kedaluwarsa.

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
Intersect(IPermission)
Kedaluwarsa.

Membuat dan mengembalikan izin yang merupakan persimpangan izin saat ini dan izin yang ditentukan.

IsSubsetOf(IPermission)
Kedaluwarsa.

Menentukan apakah izin saat ini adalah subset dari izin yang ditentukan.

IsUnrestricted()
Kedaluwarsa.

Mengembalikan nilai yang menunjukkan apakah izin saat ini tidak dibatasi.

MemberwiseClone()
Kedaluwarsa.

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
PermitOnly()
Kedaluwarsa.

Mencegah penelepon yang lebih tinggi dalam tumpukan panggilan menggunakan kode yang memanggil metode ini untuk mengakses semua sumber daya kecuali untuk sumber daya yang ditentukan oleh instans saat ini.

(Diperoleh dari CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Kedaluwarsa.

Mengatur akses yang ditentukan ke file atau direktori yang ditentukan, menggantikan status izin yang ada.

SetPathList(FileIOPermissionAccess, String[])
Kedaluwarsa.

Mengatur akses yang ditentukan ke file dan direktori yang ditentukan, mengganti status saat ini untuk akses yang ditentukan dengan set jalur baru.

ToString()
Kedaluwarsa.

Membuat dan mengembalikan representasi string dari objek izin saat ini.

(Diperoleh dari CodeAccessPermission)
ToXml()
Kedaluwarsa.

Membuat pengodean XML dari izin dan statusnya saat ini.

Union(IPermission)
Kedaluwarsa.

Membuat izin yang merupakan gabungan izin saat ini dan izin yang ditentukan.

Berlaku untuk

Lihat juga