526
Chương 13: Bảo mật
•
GetHostEnumerator
•
GetAssemblyEnumerator
Phương thức
GetEnumerator
trả về một
System.Collections.IEnumerator
dùng để liệt kê tất
cả các đối tượng chứng cứ bên trong tập hợp
Evidence
. Phương thức
GetHostEnumerator
và
GetAssemblyEnumerator
trả về một thể hiện
IEnumerator
liệt kê chỉ các đối tượng chứng cứ từ
tập hợp tương ứng.
Ví dụ dưới đây trình bày cách hiển thị chứng cứ host và chứng cứ assembly của một
assembly. Chú ý rằng, tất cả các lớp chứng cứ chuẩn đều chép đè phương thức
Object.ToString
để biểu diễn trạng thái của đối tượng chứng cứ. Mặc dù có liên quan nhưng
không phải lúc nào ví dụ này cũng hiển thị chứng cứ mà một assembly sẽ có khi được nạp từ
bên trong chương trình của bạn. Runtime host (như Microsoft ASP.NET hay Microsoft
Internet Explorer runtime host) có thể tự ý gán thêm chứng cứ host khi nó nạp một assembly.
using System;
using System.Reflection;
using System.Collections;
using System.Security.Policy;
public class ViewEvidenceExample {
public static void Main(string[] args) {
// Nạp assembly đã được chỉ định.
Assembly a = Assembly.LoadFrom(args[0]);
// Thu lấy tập hợp Evidence từ assembly đã được nạp.
Evidence e = a.Evidence;
// Hiển thị chứng cứ host.
IEnumerator x = e.GetHostEnumerator();
Console.WriteLine("HOST EVIDENCE COLLECTION:");
while(x.MoveNext()) {
Console.WriteLine(x.Current.ToString());
}
// Hiển thị chứng cứ assembly.
x = e.GetAssemblyEnumerator();
Console.WriteLine("ASSEMBLY EVIDENCE COLLECTION:");
while(x.MoveNext()) {