2011-10-28 20 views
5

Đây là cách chúng ta manually gán quyền cho một khóa registry:lập trình gán sự cho phép để một khóa registry

Để gán quyền truy cập vào một registry key

  • mở Registry Editor. Nhấp vào khóa mà bạn muốn gán quyền.

  • Trên menu Chỉnh sửa, nhấp vào Quyền.

  • Gán cấp truy cập đến khóa được lựa chọn như sau:

  • Cấp phép người sử dụng để đọc các nội dung quan trọng, nhưng không lưu bất kỳ thay đổi thực hiện cho các tập tin, dưới Permissions for tên, cho Đọc, chọn hộp kiểm Cho phép.

  • Để cấp phép của người dùng để mở, chỉnh sửa, và mất quyền sở hữu khóa chọn, dưới Permissions for tên, cho Full Control, chọn hộp kiểm Allow.

  • Để cấp cho người dùng quyền đặc biệt trong khóa đã chọn, hãy nhấp vào Nâng cao.

Vì vậy, câu hỏi của tôi là, bạn có thể làm điều đó theo chương trình không? Giả sử, nếu tôi muốn cấp cho người dùng toàn quyền kiểm soát quyền trên một khóa con cụ thể, tôi nên viết mã bằng C# như thế nào? Cảm ơn rất nhiều.

Trả lời

3

RegistrySecurity lớp cũng là hữu ích ở đây. Vì vậy, chúng tôi có thể viết mã sau đây để áp dụng các quy tắc truy cập trên khóa đăng ký cho người dùng hiện tại.

RegistrySecurity rs = new RegistrySecurity(); // it is right string for this code 
string currentUserStr = Environment.UserDomainName + "\\" + Environment.UserName; 
rs.AddAccessRule(new RegistryAccessRule(currentUserStr, RegistryRights.WriteKey | RegistryRights.ReadKey | RegistryRights.Delete | RegistryRights.FullControl, AccessControlType.Allow)); 
+0

Đối với cho quyền cho người sử dụng "mọi người" một cách thuyết bất khả tri ngôn ngữ, vượt qua 'SecurityIdentifier mới (WellKnownSidType.WorldSid, null) 'thay vì' currentUserStr'. –

4
Microsoft.Win32.RegistryKey key; 
key = Microsoft.Win32.Registry.LocalMachine; 
RegistrySecurity rs = new RegistrySecurity(); 
rs = key.GetAccessControl(); 
string currentUserStr = Environment.UserDomainName + "\\" + Environment.UserName; 
rs.AddAccessRule(new RegistryAccessRule(currentUserStr, RegistryRights.WriteKey | RegistryRights.ReadKey | RegistryRights.Delete | RegistryRights.FullControl, AccessControlType.Allow)); 

này sẽ gán các quyền truy cập cho người dùng quy định để đăng ký key 'chìa khóa'

Các vấn đề liên quan