530
Chương 13: Bảo mật
ứng dụng cho một site, nó gán chứng cứ
System.Security.Policy.Site
cho miều ứng dụng
này. Điều này bảo đảm rằng, nếu các điều kiểm được download nạp một assembly (ngay cả từ
đĩa cục bộ), các hành động của assembly này bị ràng buộc bởi các quyền được cấp cho miền
ứng dụng dựa trên chứng cứ
Site
và chính sách bảo mật.
Trừ khi bạn gán chứng cứ cho miền ứng dụng một cách tường minh khi tạo nó,
miền ứng dụng này không ảnh hưởng gì đến các yêu cầu bảo mật (security
demand).
Để gán chứng cứ cho một miền ứng dụng, bạn hãy tạo một tập hợp
Evidence
và thêm các đối
tượng chứng cứ cần thiết vào đó bằng phương thức
Evidence.AddHost
. Khi tạo miền ứng dụng
mới, bạn truyền tập hợp
Evidence
cho một trong các phiên bản nạp chồng của phương thức
tĩnh
CreateDomain
. Quá trinh phân giai chinh sách thương ky cua bô thưc thi se xác đinh
grant-set của miền ứng dụng.
Ứng dụng dưới đây trình bày cách gán chứng cứ cho một miền ứng dụng. Trong đó, ứng dụng
nạp mã lệnh từ một publisher cụ thể vào một miền ứng dụng publisher cụ thê. Bằng cách gán
cho miều ứng dụng chứng cứ
System.Security.Policy.Publisher
mô tả publisher của phần
mềm, ví dụ này hạn chế các khả năng của mã lệnh được nạp vào miền ứng dụng. Sử dụng
chính sách bảo mật, bạn có thể gán mã lệnh của publisher một tập quyền cực đại tương xứng
với mức tin cậy bạn đặt vào publisher.
using System;
using System.Security.Policy;
using System.Security.Cryptography.X509Certificates;
public class AppDomainEvidenceExample {
public static void Main() {
// Tạo một miền ứng dụng mới cho mỗi publisher mà ứng dụng này
// sẽ nạp mã lệnh của nó. Truyền cho phương thức CreateAppDomain
// tên công ty, và tên của file chứa chứng chỉ X.509v3
// của công ty này.
AppDomain appDom1 = CreateAppDomain("Litware", "litware.cer");
AppDomain appDom2 = CreateAppDomain("Fabrikam", "fabrikam.cer");
// Nạp mã lệnh từ các publisher vào miền ứng dụng phù hợp
// để thực thi.
§
}