Я новый С# и пытаюсь понять новые функции безопасности .NET-4.
Чтобы заполнить некоторые детали, я в настоящее время пытаюсь обновить AutofacContrib.Moq для работы с последним Moq. У меня не было проблем с этим для .NET-3.5 и ниже. Но в .NET-4 ограничения безопасности приводят к многочисленным исключениям безопасности.
Moq имеет единственный метод GetObjectData
, который помечен атрибутом SecurityCritical. AutofacContrib.Moq имеет атрибут AllowPartiallyTrustedCallers, который является источником исключений. Похоже, что вместо добавления атрибута SecurityRules
с SecurityLevel из 1 мне было бы лучше удалить атрибут AllowPartiallyTrustedCallers
. Я считаю, что это делает сборку SecurityTransparent по умолчанию, что может быть недостаточно (хотя проходят тесты модуля AutofacContrib.Moq).
Мой главный вопрос на данный момент заключается в том, должны ли сборки, предназначенные для .NET-4, использовать атрибут AllowPartiallyTrustedCallers? Но, учитывая, что я определенно все еще не понимаю, какие детали следует учитывать при работе с ассемблерами, отмеченными безопасностью? Должен ли я явно указывать свою сборку атрибутами безопасности в тех местах, где он использует, прямо или косвенно, что-то, что помечено SecurityCritical
?