■ CodeAccessPermission 클래스의 Demand 메소드를 사용해 권한을 감지하는 방법을 보여준다.
▶ 예제 코드 (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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
using System; using System.IO; using System.Security; using System.Security.Permissions; namespace TestProject { /// <summary> /// 파일 헬퍼 /// </summary> public class FileHelper { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public #region 저장하기 - Save(filePath) /// <summary> /// 저장하기 /// </summary> /// <param name="filePath">파일 경로</param> public static void Save(string filePath) { if(IsPermissionGranted(new FileIOPermission(FileIOPermissionAccess.Write, filePath))) { using(FileStream stream = File.Create(filePath)) { using(StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine("I can write to local disk."); } } } else { Console.WriteLine("I can't write to local disk."); } } #endregion //////////////////////////////////////////////////////////////////////////////// Private #region 권한 부여 여부 구하기 - IsPermissionGranted(permission) /// <summary> /// 권한 부여 여부 구하기 /// </summary> /// <param name="permission">권한</param> /// <returns>권한 부여 여부</returns> private static bool IsPermissionGranted(CodeAccessPermission permission) { try { permission.Demand(); return true; } catch { return false; } } #endregion } } |