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

521

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

nắm được các mặt hạn chế của một thư viện mà bạn muốn gọi từ mã lệnh của
bạn.

Sử dụng công cụ Permissions View (Permview.exe—được cấp cùng với .NET
Framework SDK
).

Để cấu hình chính sách bảo mật một cách phù hợp, bạn cần biết các nhu cầu quyền truy xuất
mã lệnh (code access permission requirements) của các assembly mà bạn dự định sẽ chạy.
Điều này đúng cho cả các thư viện và các assembly thực thi được truy xuất từ ứng dụng của
bạn. Đối với thư viện, bạn cần biết assembly loại bỏ những quyền nào để không sử dụng thư
viện này để thực hiện một hành động bị hạn chế (sẽ dẫn đến ngoại lệ

System.Security.SecurityException

).

Công cụ Permview.exe cung cấp một cơ chế đơn giản mà thông qua đó, bạn có thể xem các
yêu cầu quyền khai báo (declarative permission request) được tạo bên trong một assembly—
bao gồm yêu cầu tối thiểu (minimum request), yêu cầu tùy chọn (optional request), và yêu cầu
loại trừ (refusal request). Ví dụ, lớp dưới đây khai báo một cầu tối thiểu, một yêu cầu tùy
chọn, và một yêu cầu loại trừ:

using System.Net;

using System.Security.Permissions;

// Yêu cầu quyền tối thiểu: SocketPermission.

[assembly:SocketPermission(SecurityAction.RequestMinimum,

Unrestricted = true)]

// Yêu cầu quyền tùy chọn: SecurityPermission.

[assembly:SecurityPermission(SecurityAction.RequestOptional,

Unrestricted = true)]

// Yêu cầu loại trừ quyền: FileIOPermission.

[assembly:SecurityPermission(SecurityAction.RequestRefuse,

Unrestricted = true)]

public class PermissionViewExample {

public static void Main() {

// Làm gì đó...

}

}

Thực thi lệnh

permview PermissionViewExample.exe

sẽ sinh ra kết xuất như sau. Mặc dù

không mấy thân thiện nhưng bạn vẫn có thể đọc kết xuất để xác định các yêu cầu quyền được
tạo bởi assembly. Mỗi kiểu trong ba kiểu yêu cầu quyền—tối thiểu, tùy chọn, và loại trừ—
được liệt kê dưới một tiêu đề riêng và được kết cấu ở dạng XML của một đối tượng

System.Security.PermissionSet

.

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.