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