.NET Security → Как работает запрос на разрешение

Чтобы проверить, имеет ли код разрешение на доступ к ресурсу или на выполнение операции, общеязыковая среда выполнения CLR проверяет все вызывающие программы из стекового фрейма с целью убедиться, предоставлено ли запрошенное разрешение каждои сборке, имеющей метод в стеке. И если у какой-либо вызывающей программы из стека нет требуемого разрешения, то запускается исключение SecurityException.

Опубликовал admin
11 Апр, Вторник 2006г.

.NET Security → Стратегия запроса разрешений

Перед использованием разрешений код должен запросить их. Тогда легче будет восстановить работу программы, если в каких-либо разрешениях программе будет отказано. Например, рассмотрим случай, когда требуется получить доступ к нескольким важным файлам. При этом намного легче в самом начале работы проверить, есть ли у вас нужные разрешения, чем потом, когда уже сделана половина сложной операции, заниматься восстановлением. Пользователи должны знать заранее, что некоторые функции для них будут недоступны.

Опубликовал admin
11 Апр, Вторник 2006г.

.NET Security → Запрет разрешений

К разрешению можно применять метод Deny (Запретить). Тогда, даже если политика безопасности и разрешает доступ к файлу, любая попытка такого доступа будет безуспешной. Это демонстрируется примером Simple-PermissionCodeDenial. Вместо того, чтобы требовать разрешение, мы вызываем метод Deny (Запретить) объекта FilelOPermission.

Опубликовал admin
11 Апр, Вторник 2006г.

.NET Security → Утверждение разрешений

Метод Assert Утвердить) позволяет вам требовать разрешение, даже если у вас нет соответствующих грав доступа. Вам также может потребоваться утвердить разрешение еще и потому, что, хотя ваша сборка и обладает нужным правом, но другие вызовы из цепочки вызовов егоне имеют. Утверждать вы можете только те разрешения, которые предоставлены вашейсборкой. Если бы это было не так, то обойти защиту общеязыковой среды выполненияСЬК было бы очень легко.

Опубликовал admin
11 Апр, Вторник 2006г.

.NET Security → Другие методы разрешений

PermitOnly указывает разрешения, которые должны быть успешными. Вы указываете, к каким ресурсам вам нужен доступ. Вызов PermitOnly действует до тех пор, пока не завершится выполнение кода, в котором он находится, или до следующего вызова этого метода. RevertPermitOnly удаляет все текущие запросы PermitOnly. RevertAll отменяет результаты выполнения Deny (Запретить), PermitOnly и Assert (Утвердить).
Опубликовал admin
11 Апр, Вторник 2006г.


RSS-материал

Программирование для чайников.