11

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.

Trả lời

1

Nếu bạn đang cố gắng bảo mật quyền truy cập vào loại phụ HttpApplication, tôi sẽ khuyên bạn nên truy cập vào giao diện tùy chỉnh mà bạn biết là an toàn và cho phép các nhà phát triển bên thứ ba truy cập vào đó thay vì cố gắng bảo mật bootstrap. loại.

Các vấn đề liên quan