Tôi hiện đang ở trong một dự án nơi chúng tôi đang tạo một MVC site
. Trang web cần phải sử dụng bảo mật truy cập mã, do thực tế là cần phải cắm vào bên thứ ba, để cung cấp chức năng tùy chỉnh. Bây giờ chúng tôi không muốn các hội đồng này có sự tin tưởng đầy đủ, và do đó sử dụng mô hình bảo mật mới trong .NET 4.0
Đảm bảo các hội đồng trang web với mô hình bảo mật mã mới
Do các yêu cầu này, chúng tôi đặt tên cho tất cả các hội đồng của chúng ta và cài đặt chúng trong gấc. Một số các assembly được SecurityTransparent trộn với SecuritySafeCritical và SecurityCritical và các thành viên.
Bảo mậtTrong suốt và Bảo mậtChiến hợp, loại và thành viên chính xác có thể được các nhà phát triển lắp ráp bên thứ ba sử dụng như chúng tôi dự định.
Tôi hiện có sự cố này với tệp Global.asax
, được kế thừa từ một lớp nằm trong một hội đồng được đánh dấu bằng thuộc tính AllowPartiallyTrustedCallers
.
Lớp này lần lượt kế thừa từ HttpApplication
.
Trong số web.config
trustlevel của tôi hiện được đặt thành Cao.
Tôi nhận được lỗi sau:
Inheritance security rules violated by type: 'ASP.global_asax'. Derived types must either match the security accessibility of the base type or be less accessible
Tôi đoán đó là bởi vì các quy tắc thừa kế khi sử dụng mô hình bảo mật, và rằng lớp HttpApplication
phải có một quy tắc nghiêm ngặt hơn SecurityTransparent.
Tôi đã thử đánh dấu lớp tùy chỉnh của mình với thuộc tính SecuritySafeCritical
nhưng không may mắn.
Tôi hy vọng một số bạn có giải pháp cho vấn đề này.