Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 파일 권한 관리: FileIOPermission 클래스 완벽 가이드

C#에서 파일 권한(File Permission)을 다루려면 FileIOPermission 클래스를 사용합니다. 이 클래스는 파일과 폴더에 대한 접근 권한을 제어하는 역할을 하며, 보안 정책에 따라 특정 파일이나 디렉터리에 대한 읽기, 쓰기 등의 작업을 허용하거나 제한할 수 있습니다.

FileIOPermission 클래스의 주요 속성

번호속성 및 설명
1AllFiles
모든 파일에 대해 허용되는 접근 권한을 가져오거나 설정합니다.
2AllLocalFiles
모든 로컬 파일에 대해 허용되는 접근 권한을 가져오거나 설정합니다.

FileIOPermission 클래스의 주요 메서드

번호메서드 및 설명
1AddPathList(FileIOPermissionAccess, String)
지정된 파일 또는 디렉터리에 대한 접근 권한을 기존 권한 상태에 추가합니다.
2Copy()
현재 권한과 동일한 복사본을 생성하여 반환합니다.
3GetType()
현재 인스턴스의 형식(Type)을 가져옵니다.
4ToXml()
권한과 그 현재 상태에 대한 XML 인코딩을 생성합니다.

FileIOPermission 사용 예제

다음은 C#에서 FileIOPermission 클래스를 활용하는 예제입니다. 여기서 사용된 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("애플리케이션이 파일을 읽을 수 있는 권한이 있는지 확인하기 위해 권한을 요청합니다");
         file.Demand();
      }
      catch (SecurityException s) {
         Console.WriteLine(s.Message);
      }
   }
}

위 예제에서는 먼저 PermissionState.None으로 FileIOPermission 객체를 생성한 뒤, AllLocalFiles 속성을 통해 로컬 파일 읽기 권한을 설정합니다. 이후 Demand()를 호출하여 실제로 해당 권한이 부여되었는지 검증하며, 권한이 없으면 SecurityException이 발생하고 catch 블록에서 예외 메시지를 출력합니다.