[C#] File, Directory 보안 설정
2011. 4. 23. 13:42ㆍOthers/C# 일반
File 보안 설정
using System.Security.AccessControl; //파일의 보안 권한을 가져옴 FileSecurity fSecurity = File.GetAccessControl(filename); fSecurity.AddAccessRule(new FileSystemAccessRule("NETWORK SERVICE", FileSystemRights.FullControl, AccessControlType.Allow)); // NETWORK SERVICE 사용자에 전체권한 추가 File.SetAccessControl(filename, fSecurity);
FileSystemAccessRule 클래스
파일이나 디렉터리에 대한 액세스 규칙을 정의하는 ACE(액세스 제어 항목)을 추상적으로 나타낸 클래스이며, 자식 개체에 액세스 규칙이 전파되는 방법도 지정할 수 있음
FileSystemAccessRight 열거형
- AppendData : 파일 끝에 데이터를 추가할 수 있는 권한
- ChangePermissions : 파일이나 폴더와 관련된 보안 및 감사 규칙을 변경할 수 있는 권한
- CreateDirectories : 폴더를 만들 수 있는 권한
- Delete : 폴더나 파일을 삭제할 수 있는 권한
- DeleteSubdirectoriesAndFiles : 폴더와 해당 폴더 안에 포함된 모든 파일을 삭제할 수 있는 권한
- ExecuteFile : 응용 프로그램 파일을 실행할 수 있는 권한
- FullControl : 폴더나 파일을 완전하게 제어하고 액세스 제어 및 감사 규칙을 수정할 수 있는 권한, 모든 작업을 할 수 있는 권한
- ListDirectory : 디렉터리의 내용을 읽을 수 있는 권한
- Modify : 폴더의 내용을 읽고, 쓰고, 나열하고, 폴더와 파일을 삭제하고, 응용 프로그램 파일을 실행할 수 있는 권한
- Read : 폴더나 파일을 일기 전용으로 열고 복사할 수 있는 권한
- ReadAndExecute : 폴더나 파일을 읽기 전용으로 열고 복사하고, 응용 프로그램 파일을 실행할 수 있는 권한
- ReadAttribute : 폴더나 파일에서 파일 시스템 특성을 열고 복사할 수 있는 권한
- ReadData : 파일이나 폴더를 열고 복사할 수 있는 권한
- ReadExtendedAttributes : 파일이나 폴더를 열고 복사할 수 있는 권한
- ReadPermissions : 폴더나 파일에서 ㅅ액세스 및 감사 규칙을 열고 복사할 수 있는 권한
- Synchronize : 응용 프로그램에서 파일 핸들이 I/O작업 완료와 동기화될 때까지 기다릴 수 있는지 여부 지정
- TakeOwnership : 폴더나 파일의 소유자를 변경할 수 있는 권한
- Traverse : 폴더의 내용을 나열하고 해당 폴더에 포함된 응용 프로그램을 실행할 수 있는 권한
- Write : 폴더와 파일을 만들고 파일에서 데이터를 추가하고 제거할 수 잇는 권한
- WriteAttributes : 폴더나 파일에서 파일 시스템 특성을 열고 쓸 수 있는 권한
- WriteData : 파일이나 폴더를 열고 쓸 수 있는 권한
- WriteExtendedAttributes : 폴더나 파일에서 확장된 파일 시스템 특성을 열고 쓸 수 있는 권한 /li>
폴더권한 설정하기
DirectorySecurity dSecurity = Directory.GetAccessControl(folderPath); dSecurity.AddAccessRule(new FileSystemAccessRule( new NTAccount("Users"), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit|InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow )); Directory.SetAccessControl(folderPath, dSecurity);
FileSystemRights 열거형
권한이 각 항목별로 상속되는지를 지정하는 플래그
- None : ACE는 자식 개체에 상속되지 않음
- ContainerInherit : ACE는 자식 컨테이너 개체에 상속됨
- ObjectInherit : ACE는 자식 리프 개체에서 상속됨
PropagationFlags 열거형
ACE(액세스 제어 항목)가 자식 개체로 전파되는 방법을 지정합니다.
- None
- NoPropagateInherit : ACE가 가직 개체로 전파되지 않도록 지정
- InheritOnly : ACE가 자긱 개체로만 전파되도록 지정. 여기에는 컨테이너와 리프 자식 개체로 모두 포함
'Others > C# 일반' 카테고리의 다른 글
[C#] Internet Explorer 실행 및 연동하기 (0) | 2011.07.18 |
---|---|
[C#] ANSI Encoding로 파일 저장하기 (0) | 2011.07.18 |
[C#] Version 자동 설정 및 BuildDateTime 구하기 (0) | 2011.04.15 |
[Office] Excel Html을 이용하여 Excel 문서 작성하기 (0) | 2011.02.28 |
[Office] XElement를 이용하여 Excel XML 작성하기 (0) | 2011.01.24 |