Các giải pháp lập trình CSharp- P65
Số trang: 10
Loại file: pdf
Dung lượng: 2.64 MB
Lượt xem: 4
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các giải pháp lập trình CSharp- P65: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P65 531 Chương 13: Bảo mật // Phương thức này tạo một miền ứng dụng mới để nạp và chạy mã lệnh // trong đó từ một publisher cụ thể. Đối số name chỉ định tên của // miền ứng dụng. Đối số certFile chỉ định tên của file chứa // một chứng chỉ X.509v3 cho publisher mà mã lệnh của nó sẽ // được chạy trong miền ứng dụng mới. private static AppDomain CreateAppDomain(string name, string certFile){ // Tạo một đối tượng X509Certificate mới từ chứng chỉ X.509v3 // nằm trong file được chỉ định. X509Certificate cert = X509Certificate.CreateFromCertFile(certFile); // Tạo chứng cứ Publisher mới từ đối tượng X509Certificate. Publisher publisherEvidence = new Publisher(cert); // Tạo một tập hợp Evidence mới. Evidence evidence = new Evidence(); // Thêm chứng cứ Publisher vào tập hợp Evidence. evidence.AddHost(publisherEvidence); // Tao môt miên ưng dung mơi vơi tâp hơp Evidence // chưa chưng cư Publisher va tra vê miên ưng dung // vưa đươc tao ra. return AppDomain.CreateDomain(name, evidence); }}12. Xử lý bảo mật bộ thực thi bằng chính sách bảo mật của miền ứng dụng Bạn cần kiểm soát (bằng mã lệnh) các quyền được cấp cho các assembly. Cấu hình (bằng mã lệnh) chính sách bảo mật của miền ứng dụng mà bạn đã nạp các assembly vào đó. 532 Chương 13: Bảo mậtChính sách bảo mật (security policy) bao gồm bốn mức chính sách: công ty (enterprise), máy(machine), người dùng (user), và miền ứng dụng (application domain). Bộ thực thi quyết địnhnhững quyền nào để cấp cho một assembly bằng cách xác định tập quyền được cấp bởi mỗimức chính sách rồi tính phép giao (phép AND luận lý) của bốn tập quyền. Các quyền nằmtrong tập giao là grant-set cuối cùng của assembly. Ngay cả khi các mức chính sách công ty, máy, hay người dùng chỉ định code group LevelFinal (chỉ thị bộ thực thi không đánh giá các mức chính sách thấp hơn), bộ thực thi luôn sử dụng mức chính sách của miền ứng dụng để tính grant- set của một assembly.Chỉ các mức chinh sách công ty, máy, và người dùng là được cấu hình tĩnh bằngAdministrative Tools. Vì miền ứng dụng không tồn tại bên ngoài ngữ cảnh của bộ thực thi nênkhông thể cấu hình tĩnh chính sách miền ứng dụng được. Để cấu hình chính sách bảo mật củamột miền ứng dụng, bạn phải tạo một mức chính sách (bằng mã lệnh) rồi gán nó cho miềnứng dụng.Xây dựng một mức chính sách bằng mã lệnh có thể là một công việc lâu dài, tùy thuộc vào độphức tạp của chính sách bảo mật mà bạn cần diễn tả. LớpSystem.Security.Policy.PolicyLevel mô tả một mức chính sách bảo mật. Bên trong mỗi đốitượng PolicyLevel, bạn phải tạo dựng một cấu trúc phân cấp các code group, định nghĩa cácđiều kiện thành viên, các tập quyền, và các đặc tính của mỗi code group. Có rất nhiều kiểuđược sử dụng để tạo dựng mức chính sách, và thảo luận về các kiểu này là vượt quá phạm viquyển sách này. Lập trình bảo mật .NET, như đã đề cập trước đây, cung cấp thông tin chi tiếtvề mỗi lớp này và trình bày cách xây dựng một mức chính sách bằng mã lệnh. Thông thường, bạn sẽ phát triển một công cụ trợ giúp việc tạo một mức chính sách và ghi định nghĩa mức chính sách ra file; sau đó, bạn có thể nạp định nghĩa này từ đĩa khi cần. Lớp PolicyLevel có hai phương thức nhằm đơn giản hóa quá trình này: ToXml đưa một đối tượng PolicyLevel về dạng dễ lưu trữ, và FromXml xây dựng lại một đối tượng PolicyLevel từ dạng đã được lưu trữ.Một khi đã có đối tượng PolicyLevel mô tả chính sách bảo mật như mong muốn, bạn có thểgán nó cho một miền ứng dụng. Thu lấy tham chiếu System.AppDomain đến miền ứng dụng màbạn muốn cấu hình, và truyền đối tượng PolicyLevel cho phương thứcAppDomain.SetAppDomainPolicy. Mã lệnh của bạn phải có phần tử ControlDomainPolicy củaSecurityPermission thì mới có thể gọi SetAppDomainPolicy. Bạn chỉ có thể gọiSetAppDomainPolicy một lần trên mỗi miền ứng dụng; nếu bạn gọi SetAppDomainPolicy lầnthứ hai, nó sẽ ném ngoại lệ System.Security.Policy.PolicyException.Bạn không phải gán đối tượng PolicyLevel cho một miền ứng dụng trước khi nạp cácassembly vào miền ứng dụng này. Các assembly được nạp trước khi bạn thiết lập chính sáchbảo mật miền ứng dụng có các grant-set chỉ dựa trên các mức chính sách: công ty, máy, vàngười dùng. Chính sách miền ứng dụng chỉ áp dụng cho các assembly được nạp sau khi nóđược cấu hình. Thông thường, bạn sử dụng khả năng này để nạp các assembly chia sẻ đáng-tin-cậy vào miền ứng dụng mà không bị ràng buộc bởi chính sách miền ứng dụng. 533 Chương 13: Bảo mậtỨng dụng dưới đây trình bày quá trình tạo một mức chính sách và gán nó cho một miền ứngdụng. Mức chính sách này cấp các quyền dựa trên publisher của một assembly—được thể hiệntrong các khoản của chứng cứ System.Security.Policy.Publisher.using System;using System.Security;using System.Security.Policy;using System.Security.Cryptography.X509Certificates;public class AppDomainPolicyExample { public static void Main() { // Tạo một miền ứng dụng mới (để nạp các assembly vào đó). AppDomain domain = AppDomain.CreateDomain(modules); // Nạp các assembly vào miền ứng dụng mà bạn không muốn // bị ràng buộc bởi chính sách bảo mật miền ứng dụng. § // Cấu hình chính sách bảo mật cho đối tượng AppDomain. SetDomainPolicy(domain); // Nạp các a ...
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P65 531 Chương 13: Bảo mật // Phương thức này tạo một miền ứng dụng mới để nạp và chạy mã lệnh // trong đó từ một publisher cụ thể. Đối số name chỉ định tên của // miền ứng dụng. Đối số certFile chỉ định tên của file chứa // một chứng chỉ X.509v3 cho publisher mà mã lệnh của nó sẽ // được chạy trong miền ứng dụng mới. private static AppDomain CreateAppDomain(string name, string certFile){ // Tạo một đối tượng X509Certificate mới từ chứng chỉ X.509v3 // nằm trong file được chỉ định. X509Certificate cert = X509Certificate.CreateFromCertFile(certFile); // Tạo chứng cứ Publisher mới từ đối tượng X509Certificate. Publisher publisherEvidence = new Publisher(cert); // Tạo một tập hợp Evidence mới. Evidence evidence = new Evidence(); // Thêm chứng cứ Publisher vào tập hợp Evidence. evidence.AddHost(publisherEvidence); // Tao môt miên ưng dung mơi vơi tâp hơp Evidence // chưa chưng cư Publisher va tra vê miên ưng dung // vưa đươc tao ra. return AppDomain.CreateDomain(name, evidence); }}12. Xử lý bảo mật bộ thực thi bằng chính sách bảo mật của miền ứng dụng Bạn cần kiểm soát (bằng mã lệnh) các quyền được cấp cho các assembly. Cấu hình (bằng mã lệnh) chính sách bảo mật của miền ứng dụng mà bạn đã nạp các assembly vào đó. 532 Chương 13: Bảo mậtChính sách bảo mật (security policy) bao gồm bốn mức chính sách: công ty (enterprise), máy(machine), người dùng (user), và miền ứng dụng (application domain). Bộ thực thi quyết địnhnhững quyền nào để cấp cho một assembly bằng cách xác định tập quyền được cấp bởi mỗimức chính sách rồi tính phép giao (phép AND luận lý) của bốn tập quyền. Các quyền nằmtrong tập giao là grant-set cuối cùng của assembly. Ngay cả khi các mức chính sách công ty, máy, hay người dùng chỉ định code group LevelFinal (chỉ thị bộ thực thi không đánh giá các mức chính sách thấp hơn), bộ thực thi luôn sử dụng mức chính sách của miền ứng dụng để tính grant- set của một assembly.Chỉ các mức chinh sách công ty, máy, và người dùng là được cấu hình tĩnh bằngAdministrative Tools. Vì miền ứng dụng không tồn tại bên ngoài ngữ cảnh của bộ thực thi nênkhông thể cấu hình tĩnh chính sách miền ứng dụng được. Để cấu hình chính sách bảo mật củamột miền ứng dụng, bạn phải tạo một mức chính sách (bằng mã lệnh) rồi gán nó cho miềnứng dụng.Xây dựng một mức chính sách bằng mã lệnh có thể là một công việc lâu dài, tùy thuộc vào độphức tạp của chính sách bảo mật mà bạn cần diễn tả. LớpSystem.Security.Policy.PolicyLevel mô tả một mức chính sách bảo mật. Bên trong mỗi đốitượng PolicyLevel, bạn phải tạo dựng một cấu trúc phân cấp các code group, định nghĩa cácđiều kiện thành viên, các tập quyền, và các đặc tính của mỗi code group. Có rất nhiều kiểuđược sử dụng để tạo dựng mức chính sách, và thảo luận về các kiểu này là vượt quá phạm viquyển sách này. Lập trình bảo mật .NET, như đã đề cập trước đây, cung cấp thông tin chi tiếtvề mỗi lớp này và trình bày cách xây dựng một mức chính sách bằng mã lệnh. Thông thường, bạn sẽ phát triển một công cụ trợ giúp việc tạo một mức chính sách và ghi định nghĩa mức chính sách ra file; sau đó, bạn có thể nạp định nghĩa này từ đĩa khi cần. Lớp PolicyLevel có hai phương thức nhằm đơn giản hóa quá trình này: ToXml đưa một đối tượng PolicyLevel về dạng dễ lưu trữ, và FromXml xây dựng lại một đối tượng PolicyLevel từ dạng đã được lưu trữ.Một khi đã có đối tượng PolicyLevel mô tả chính sách bảo mật như mong muốn, bạn có thểgán nó cho một miền ứng dụng. Thu lấy tham chiếu System.AppDomain đến miền ứng dụng màbạn muốn cấu hình, và truyền đối tượng PolicyLevel cho phương thứcAppDomain.SetAppDomainPolicy. Mã lệnh của bạn phải có phần tử ControlDomainPolicy củaSecurityPermission thì mới có thể gọi SetAppDomainPolicy. Bạn chỉ có thể gọiSetAppDomainPolicy một lần trên mỗi miền ứng dụng; nếu bạn gọi SetAppDomainPolicy lầnthứ hai, nó sẽ ném ngoại lệ System.Security.Policy.PolicyException.Bạn không phải gán đối tượng PolicyLevel cho một miền ứng dụng trước khi nạp cácassembly vào miền ứng dụng này. Các assembly được nạp trước khi bạn thiết lập chính sáchbảo mật miền ứng dụng có các grant-set chỉ dựa trên các mức chính sách: công ty, máy, vàngười dùng. Chính sách miền ứng dụng chỉ áp dụng cho các assembly được nạp sau khi nóđược cấu hình. Thông thường, bạn sử dụng khả năng này để nạp các assembly chia sẻ đáng-tin-cậy vào miền ứng dụng mà không bị ràng buộc bởi chính sách miền ứng dụng. 533 Chương 13: Bảo mậtỨng dụng dưới đây trình bày quá trình tạo một mức chính sách và gán nó cho một miền ứngdụng. Mức chính sách này cấp các quyền dựa trên publisher của một assembly—được thể hiệntrong các khoản của chứng cứ System.Security.Policy.Publisher.using System;using System.Security;using System.Security.Policy;using System.Security.Cryptography.X509Certificates;public class AppDomainPolicyExample { public static void Main() { // Tạo một miền ứng dụng mới (để nạp các assembly vào đó). AppDomain domain = AppDomain.CreateDomain(modules); // Nạp các assembly vào miền ứng dụng mà bạn không muốn // bị ràng buộc bởi chính sách bảo mật miền ứng dụng. § // Cấu hình chính sách bảo mật cho đối tượng AppDomain. SetDomainPolicy(domain); // Nạp các a ...
Tìm kiếm theo từ khóa liên quan:
kinh nghiệm lập trình CSharp mẹo lập trình ngôn ngữ lập trình C giáo trình lập trình CSharp lập trình java lập trình căn bản CSharpGợi ý tài liệu liên quan:
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 209 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
101 trang 199 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
161 trang 129 1 0
-
142 trang 129 0 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 116 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 109 0 0 -
Excel add in development in c and c phần 9
0 trang 106 0 0 -
78 trang 100 0 0