2012-05-09 26 views
5

Tôi có một ứng dụng quản trị chạy với các đặc quyền nâng cao và tôi cần nó để lưu trữ một số tệp nhạy cảm trong một thư mục mà chỉ quản trị viên hệ thống mới có thể truy cập.Tạo thư mục có thể truy cập chỉ dành cho quản trị viên

Có thể bạn phải thực hiện cuộc gọi sau nhưng tôi không chắc chắn cách cấu hình nó.

Directory.CreateDirectory(@"C:\SomePath", new AccessControl.DirectorySecurity() { AccessRightType = ?, AccessRuleType = ?, AuditRuleType = ?); 

Nếu có cách nào tốt hơn để đạt được điều này, vui lòng cho tôi biết. Cảm ơn.

EDIT: Tìm thấy triển khai tốt here. Sẽ để câu hỏi mở trong một ngày trong trường hợp có bất kỳ đề xuất nào khác.

+0

Tại sao bạn không mã hóa các tệp thay thế? – MatteKarla

+0

Tôi nói mã hóa sẽ là con đường để đi. –

+0

Các tệp đã được mã hóa. Điều khiển truy cập yêu cầu là đáp ứng các quy định. Không có lựa chọn thay thế. –

Trả lời

5

Tìm thấy giải pháp tốt here.

FileSystemAccessRule administratorRule = new FileSystemAccessRule("Administrators", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow); 

FileSystemAccessRule guestRule = new FileSystemAccessRule("Guest", FileSystemRights.CreateDirectories | FileSystemRights.CreateFiles, AccessControlType.Allow); 

DirectorySecurity dirSec = new DirectorySecurity(); 
dirSec.AddAccessRule(administratorRule); 
dirSec.AddAccessRule(guestRule); 

Directory.CreateDirectory(@"C:\GuestTemp", dirSec); 
Các vấn đề liên quan