Tôi có một chương trình và một kiến trúc plugin đơn giản, nơi các plugin thực hiện một giao diện chung và chương trình chính tải tất cả các plugin thực hiện giao diện này. Đó là kiến trúc plugin tùy chỉnh phổ biến nhất mà tôi đã tìm thấy từ trước đến nay, vì vậy đó là những gì tôi đang sử dụng.Có cách nào để chặn một C# plugin truy cập vào ứng dụng C# chính trong một chương trình không?
Tôi không sử dụng MEF của Microsoft và tôi có lý do không làm như vậy. Tôi sẽ để nó ở đó.
Vấn đề là khi các plugin được tải, bất kể chúng 'mù' đến chương trình chính và đó là các biểu mẫu/lớp/v.v. nó vẫn có thể truy cập System.Windows.Forms.Application
và do đó có thể truy cập vào ứng dụng của tôi và các biểu mẫu/phương thức/điều khiển/v.v. hiện đang chạy của nó.
Tôi không muốn điều này. Có cách nào để hạn chế quyền truy cập của một plugin vào Ứng dụng chính không?
EDIT: Thông tin thêm về các plugin
Chúng tôi (ông chủ của tôi và tôi) hiện đang thảo luận những gì các plugins cần phải làm. Tất cả chúng rõ ràng là cần thêm chức năng, nhưng ban đầu chúng tôi quyết định cấp cho mỗi plugin quyền truy cập vào biểu mẫu hiện đang chạy để có thể thêm điều khiển và sự kiện trực tiếp vào biểu mẫu. Điều này được dựa trên giả định rằng chỉ có chúng tôi, các nhà phát triển, sẽ viết chúng.
Hiện tại, chúng tôi đang cân nhắc khả năng plugin của bên thứ ba và thiết kế ban đầu, có độ bảo mật cao như dấu "Không nhập" trên cửa mở mà không có ai xung quanh.
Hoặc dấu "Take One" treo trên một bát skittles riêng lẻ vào Halloween.
Bạn có thể từ chối plugin nếu nó tham chiếu dll Windows.Form không? – hungryMind
@hungryMind Nếu ai đó sử dụng phản ánh để truy cập các loại, thật dễ dàng bỏ qua các kiểm tra để tham khảo. Các cuộc tấn công dữ dội sẽ vượt qua điều này. –