Защита сборок веб-сайтов с помощью новой модели безопасности кода

Я сейчас работаю над проектом, в котором мы создаем сайт MVC . Сайт должен использовать защиту доступа к коду из-за того, что необходимо подключить сторонние dll для обеспечения настраиваемой функциональности. Теперь мы не хотим, чтобы эти сборки имели полное доверие, и поэтому использовали новую модель безопасности в .NET 4.0

. Из-за этих требований мы сильно называем все наши собственные сборки и устанавливаем их в gac. Некоторые из этих сборок являются SecurityTransparent, смешанными с типами и членами SecuritySafeCritical и SecurityCritical.

Сборки, типы и члены securityTransparent и SecurityCritical могут использоваться сторонними разработчиками сборок в соответствии с нашими намерениями.

Теперь у меня проблема с Global.asax , который наследуется от класса, находящегося в сборке, отмеченной атрибутом AllowParhibitedTrustedCallers .

Этот класс, в свою очередь, наследуется от HttpApplication .

В моем web.config уровень доверия в настоящее время установлен на Высокий.

Я получаю следующую ошибку:

Правила безопасности наследования нарушены типом: 'ASP.global_asax'. Производные типы должны либо соответствовать доступности безопасности базового типа , либо быть менее доступным

Я полагаю, это из-за правил наследования при использовании модели безопасности, и что класс HttpApplication должен иметь более строгие правила, чем SecurityTransparent.

Я попытался пометить свой собственный класс атрибутом SecuritySafeCritical , но безуспешно.

Я надеюсь, что у некоторых из вас есть решение этой проблемы.

12
задан tschmuck 20 October 2011 в 06:28
поделиться