CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 527

527

Chương 13: Bảo mật

Console.WriteLine(x.Current.ToString());

}

}

}

Tất cả các lớp chứng cứ chuẩn do .NET Framework cấp đều bất biến, bạn không thể thay đổi
các giá trị của chúng sau khi bộ thực thi đã tạo ra rồi gán chúng cho assembly. Ngoài ra, bạn
không thể thêm hay loại bỏ các item trong lúc đang liệt kê một tập hợp bằng

IEnumerator

, nếu

không, phương thức

MoveNext

sẽ ném ngoại lệ

System.InvalidOperationException

.

10.

10.

X lý ch ng c khi n p m t assembly

ạ ộ

X lý ch ng c khi n p m t assembly

ạ ộ

Bạn cần xử lý chứng cứ khi nạp một assembly để tác động đến các quyền mà bộ
thực thi cấp cho assembly.

Tạo các đối tượng chứng cứ mà bạn muốn gán cho assembly, sau đó thêm chúng
vào một thể hiện của lớp

System.Security.Policy.Evidence

, rồi truyền tập hợp

Evidence

cho phương thức dùng để nạp assembly.

Chứng cứ (được chiếm hữu bởi một assembly) định nghĩa định danh (identity) của assembly
và xác định bộ thực thi cấp các quyền nào cho assembly. Bộ nạp assembly (Assembly Loader)
chịu trách nhiệm chính trong việc xác định gán chứng cứ gì cho một assembly, nhưng một
host đáng tin cậy (như ASP.NET hay Internet Explorer runtime host) cũng có thể gán chứng
cứ cho một assembly. Mã lệnh của bạn có thể gán chứng cứ khi nạp một assembly nếu mã
lệnh này có phần tử

ControlEvidence

của

SecurityPermission

.

Nếu bạn nạp một assembly vào một miền ứng dụng hai lần nhưng gán chứng cứ
khác vào assembly này mỗi lần như thế, bộ thực thi sẽ ném ngoại lệ

System.IO.FileLoadException

.

Có nhiều phương thức thực hiện việc gán chứng cứ khi nạp một assembly. Một đặc điểm mà
tất cả các phương thức này thường có là nhận một tập hợp

Evidence

làm đối số—lớp

Evidence

là một bộ chứa cho các đối tượng chứng cứ. Bạn phải đặt từng đối tượng chứng cứ mà bạn
muốn gán cho assembly vào một tập hợp

Evidence

và truyền nó cho phương thức nạp

assembly. Nếu bạn gán chứng cứ mới xung đột với chứng cứ được gán bởi bộ nạp assembly,
chứng cứ mới sẽ thay thế chứng cứ cũ. Bảng 13-2 liệt kê các lớp và các phương thức của
chúng trực tiếp hay gián tiếp nạp một assembly. Mỗi phương thức cung cấp một hay nhiều
phiên bản nạp chồng chấp nhận một tập hợp

Evidence

.

Bảng 13.2 Các lớp và các phương thức của chúng cho phép bạn gán chứng cứ cho một assembly

Lớp/Phương thức

Mô tả

Lớp

System.Activator

Các phương thức này ảnh hưởng đến miền ứng dụng
hiện hành.

CreateInstance
CreateInstanceFrom

Tạo một kiểu trong miền ứng dụng hiện hành từ
assembly được chỉ định.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.