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