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

525

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

lệnh bảo mật khai báo—bao gồm

InheritanceDemand

. Ví dụ, bản sao đặc tính của

PublisherIdentityPermission

PublisherIdentityPermissionAttribute

, và bản sao đặc

tính của

StrongNameIdentityPermission

StrongNameIdentityPermissionAttribute

—tất cả

các quyền và các bản sao đặc tính của chúng cùng theo quy ước đặt tên và là các thành viên
của cùng không gian tên.
Để kiểm soát những mã lệnh nào có thể thừa kế lớp của bạn, hãy áp dụng

InheritanceDemand

khi khai báo lớp. Đoạn mã dưới đây trình bày một lớp được bảo vệ bằng

InheritanceDemand

.

Theo đó, chỉ những lớp bên trong các assembly được ký bởi publisher-certificate (nằm trong
file pubcert.cer) thì mới có thể thừa kế lớp

InheritanceDemandExample

. Nội dung của file

pubcert.cer được đọc lúc biên dịch, và các thông tin chứng thực cần thiết được gắn vào
assembly.

[PublisherIdentityPermission(SecurityAction.InheritanceDemand,

CertFile = @"I:\CSharp\Chuong13\pubcert.cer")]

public class InheritanceDemandExample {

§

}

Để kiểm soát những mã lệnh nào có thể chép đè các thành viên nào đó, bạn hãy áp dụng

InheritanceDemand

khi khai báo thành viên. Xét đoạn mã dưới đây, chỉ những lớp được cấp

tập quyền

FullTrust

thì mới có thể chép đè phương thức

SomeProtectedMethod

.

[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]

public void SomeProtectedMethod () {

§

}

9.

9.

Ki m tra ch ng c c a m t assembly

ứ ủ ộ

Ki m tra ch ng c c a m t assembly

ứ ủ ộ

Bạn cần kiểm tra chứng cứ mà bộ thực thi đã gán cho một assembly.

Thu lấy đối tượng

System.Reflection.Assembly

mô tả assembly mà bạn quan

tâm. Lấy tập hợp

System.Security.Policy.Evidence

từ thuộc tính

Evidence

của

đối tượng

Assembly

, rồi truy xuất các đối tượng chứng cứ bên trong bằng phương

thức

GetEnumerator

,

GetHostEnumerator

, hay

GetAssemblyEnumerator

của lớp

Evidence

.

Lớp

Evidence

mô tả một tập hợp các đối tượng chứng cứ. Thuộc tính chỉ-đọc

Evidence

của

lớp

Assembly

trả về một đối tượng tập hợp

Evidence

chứa tất cả các đối tượng chứng cứ mà bộ

thực thi đã gán cho assembly khi assembly này được nạp.
Thật ra, lớp

Evidence

chứa hai tập hợp, mô tả hai kiểu chứng cứ khác nhau: chứng cứ host và

chứng cứ assembly. Chứng cứ host bao gồm các đối tượng chứng cứ được gán cho assembly
bởi bộ thực thi hay mã lệnh đã nạp assembly (mã lệnh này là đáng tin cậy). Chứng cứ
assembly mô tả các đối tượng chứng cứ tùy biến được nhúng vào assembly lúc tạo dựng. Lớp

Evidence

hiện thực ba phương thức sau đây để liệt kê các đối tượng chứng cứ bên trong:

GetEnumerator

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.