FileIOPermission Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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. |