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

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

Bạn phải cấu hình đặc tính để mô tả quyền truy xuất mã lệnh mà bạn cần bằng các
thuộc tính của đặc tính. Bạn hãy tham khảo tài liệu .NET Framework SDK để biết thêm
chi tiết về các thuộc tính do mỗi đặc tính bảo mật truy xuất mã lệnh hiện thực.

Các lệnh yêu cầu quyền không được kết thúc bằng dấu chấm phẩy (;).

Để tạo nhiều yêu cầu quyền, chỉ cần thêm nhiều lệnh yêu cầu quyền như được trình bày
trong ví dụ dưới đây:

using System.Net;

using System.Security.Permissions;

// Yêu cầu SocketPermission (cho phép mở một kết nối

// TCP đến host và port được chỉ định).

[assembly:SocketPermission(SecurityAction.RequestMinimum,

Access = "Connect", Host = "www.fabrikam.com",

Port = "3538", Transport = "Tcp")]

// Yêu cầu phần tử UnmanagedCode của SecurityPermission,

// (kiểm soát khả năng thực thi mã lệnh không-được-quản-lý).

[assembly:SecurityPermission(SecurityAction.RequestMinimum,

UnmanagedCode = true)]

public class PermissionRequestExample {

public static void Main() {

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

}

}

Nếu bạn thực thi ứng dụng

PermissionRequestExample

và chính sách bảo mật không cấp cho

assembly này các quyền được yêu cầu, bạn sẽ nhận được ngoại lệ

PolicyException

như dưới

đây và ứng dụng sẽ không thực thi. Khi sử dụng chính sách bảo mật mặc định, điều này sẽ xảy
ra nếu bạn chạy assembly từ một mạng dùng chung vì các assembly được nạp từ Intranet
không được cấp

SocketPermission

.

Unhandled Exception: System.Security.Policy.PolicyException:

Required permission cannot be acquired.

Khi bạn nạp một assembly từ bên trong mã lệnh (tự động hay bằng tay), và assembly này có
chứa các yêu cầu quyền mà chính sách bảo mật không đáp ứng thì phương thức mà bạn sử
dụng để nạp assembly sẽ ném ngoại lệ

PolicyException

, do đó bạn phải thụ lý sao cho phù

hợp.

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.