Использование свидетельств, политики безопасности и разрешений для предотвращения загрузки сборки на веб-сервер

Предположим, что это код библиотеки классов .NET, который, например, записывает в реестр Windows. Затем этот код имеет проблемы с запуском через Интернет, потому что политика Интернета по умолчанию не дает доступа для записи в реестр.

Добавляя оператор RequestMinimum в сборку, мы можем указать, что код требует разрешения на запись для записи в реестр. Это не повлияет на то, что код не имеет разрешения, но остановит загрузку сборки; среда выполнения выдаст System.Security.Policy.PolicyException и определит необходимое разрешение.

Есть ли у вас какие-либо другие примеры использования доказательства, политики безопасности и разрешений (ключевых элементов безопасности кодового доступа ), чтобы предотвратить загрузку сборки на веб-сервер?


person ileon    schedule 11.03.2010    source источник


Ответы (1)


Вы можете предотвратить загрузку любой сборки в любом контексте (на веб-сервере или в другом контексте), если вы отрицаете это SecurityPermission \ Execution. В .NET 3.5 и ранее уровни доверия ASP.NET пересекаются с локальной политикой CAS на компьютере, чтобы определить окончательное предоставление разрешений для любой данной сборки. Следовательно, вы можете предотвратить загрузку сборки в ASP.NET, отказав ей в разрешении на выполнение через локальную политику CAS, используя обычные механизмы свидетельства и условия членства в группе кода. (Это не будет выполняться в .NET 4.0, где локальная политика CAS больше не будет существовать.)

person Nicole Calinoiu    schedule 11.03.2010