Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

สิทธิ์การเข้าถึงไฟล์ (File Permissions) ใน C#


ภาพรวม

คลาส FileIOPermission (namespace System.Security.Permissions) ใช้ควบคุม สิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ ใน .NET Framework (Code Access Security - CAS)

คุณสมบัติหลัก

คุณสมบัติคำอธิบาย
AllFilesสิทธิ์เข้าถึงไฟล์ทั้งหมด
AllLocalFilesสิทธิ์เข้าถึงไฟล์โลคัลทั้งหมด

เมธอดหลัก

เมธอดคำอธิบาย
AddPathList(access, path)เพิ่มเส้นทางไฟล์/โฟลเดอร์ที่อนุญาต
Copy()สร้างสำเนา permission
GetType()ดึงชนิดของ instance
ToXml()สร้าง XML encoding ของ permission
Demand()บังคับตรวจสอบสิทธิ์ โยน SecurityException หากไม่มี

ตัวอย่างโค้ด

using System;
using System.IO;
using System.Security.Permissions;
using System.Security;

public class Demo
{
    public static void Main()
    {
        FileIOPermission file = new FileIOPermission(PermissionState.None);
        file.AllLocalFiles = FileIOPermissionAccess.Read;
        try
        {
            Console.WriteLine("Demands permission to read files...");
            file.Demand();
        }
        catch (SecurityException s)
        {
            Console.WriteLine(s.Message);
        }
    }
}

ข้อสังเกตสำคัญ

  • CAS (Code Access Security) ถูก Deprecated ใน .NET Core / .NET 5+ - ไม่ใช้งานได้ใน runtime ใหม่
  • ใน .NET Framework เต็มรูปแบบ ยังทำงานได้ แต่ต้องการการตั้งค่า Security Policy
  • สำหรับแอปพลิเคชันสมัยใหม่ ใช้ OS-level permissions (ACLs, file system permissions) แทน
  • คลาสนี้อยู่ใน System.Security.Permissions ซึ่งต้อง reference assembly เพิ่มใน .NET Core