В настоящее время я работаю над проектом, в котором мы создаем MVC site
. Сайту необходимо использовать защиту доступа к коду из-за того, что необходимо подключить стороннюю DLL для обеспечения пользовательских функций. Теперь мы не хотим, чтобы эти сборки имели полное доверие и, следовательно, использовали новую модель безопасности в .NET 4.0
Из-за этих требований мы сильно назовем все наши собственные сборки и устанавливаем их в gac. Некоторые из этих сборок - SecurityTransparent, смешанные с типами и членами SecuritySafeCritical и SecurityCritical.
SecurityTransparent и SecurityCritical сборки, типы и члены могут использоваться разработчиками сторонних сборщиков так же, как мы предполагаем.
У меня теперь есть эта проблема с файлом Global.asax
, который наследуется от класса, находящегося в сборке, помеченной атрибутом AllowPartiallyTrustedCallers
.
Этот класс, в свою очередь, наследует от HttpApplication
.
В моем web.config
уровень доверия в настоящее время установлен на Высокий.
Я получаю следующую ошибку:
Правила безопасности наследования, нарушенные по типу: "ASP.global_asax". Производные типы должны либо соответствовать доступности безопасности базы тип или быть менее доступным
Я предполагаю, что из-за правил наследования при использовании модели безопасности и что класс HttpApplication
должен иметь более строгие правила, чем SecurityTransparent.
Я попытался маркировать свой собственный класс атрибутом SecuritySafeCritical
, но не повезло.
Я надеюсь, что у некоторых из вас есть решение этой проблемы.