■ Directory 클래스의 GetAccessControl 정적 메소드를 사용해 디렉토리 권한을 체크하는 방법을 보여준다.
▶ Directory 클래스 : GetAccessControl 정적 메소드를 사용해 디렉토리 권한 체크하기 예제 (C#)
1 2 3 4 5 |
using System; Console.WriteLine(CheckDirectoryPermission("c:\\Temp", FileSystemRights.Write)); |
▶ Directory 클래스 : GetAccessControl 정적 메소드를 사용해 디렉토리 권한 체크하기 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
using System.IO; using System.Security.AccessControl; using System.Security.Principal; #region 디렉토리 권한 체크하기 - CheckDirectoryPermission(directoryPath, fileSystemRights) /// <summary> /// 디렉토리 권한 체크하기 /// </summary> /// <param name="directoryPath">디렉토리 경로</param> /// <param name="fileSystemRights">파일 시스템 권한</param> /// <returns>디렉토리 권한 체크 결과</returns> public bool CheckDirectoryPermission(string directoryPath, FileSystemRights fileSystemRights) { if(string.IsNullOrEmpty(directoryPath)) { return false; } try { AuthorizationRuleCollection ruleCollection = Directory.GetAccessControl(directoryPath).GetAccessRules(true, true, typeof(SecurityIdentifier)); WindowsIdentity identity = WindowsIdentity.GetCurrent(); foreach(FileSystemAccessRule rule in ruleCollection) { if(identity.Groups.Contains(rule.IdentityReference)) { if((fileSystemRights & rule.FileSystemRights) == fileSystemRights) { if(rule.AccessControlType == AccessControlType.Allow) { return true; } } } } } catch { } return false; } #endregion |