![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Всем привет.
Вопрос из теста :
Вопрос полностью понятен. Но с моделями безопасности я знаком мало. Подозреваю, что Виста работает по каким-то таким концептам, когда в пользовательском режиме идут minimum permission requests to allow access to the file system, а чтобы получить доступ к разделам с повышенной защитой (%Program Files%, установка программ и тд), нужен как раз permission demand to allow access to the file system. В предложенном вопросе, вероятно, нужно делать именно permission request, ведь иначе на защищённый диск никакого доступа не дадут. Я правильно рассуждаю? И, вот declarative или imperative security? = Что это означает? -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Декларативная - использование атрибутов типа [] перед методом или классом (или сборкой). Среда выполнения считывает атрибут перед выполнением метода или загрузкой класса (или сборки) в память.
Императивная - достижение тех же целей кодингом
Одним словом - это два пути решения одних и тех же задач. Декларативный метод срабатывает раньше (до выполнения кода), но императианый - гибче (может настраиваться в real-time) я бы выбрал первый вариант (или второй), т.к. "minimum permission request" уж точно не разрешит -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Атрибуты. Вот оно что. Понял.
Ну а всё-таки, какой вариант из первых двух лучше в данной ситуации и почему? -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
атрибут ограничен своей областью применения (см. AtributeUsage), например, для указанного атрибута объявление так выглядит
т.е. можно юзать для метода, но не для свойства. с другой стороны императивный способ позволяет работать даже с часью метода (от точки затребования полномочий до выхода из метода или до изменения требований в том же методе). Т.е. в любом фрагменте кода. При затребовании полномочий может возникнуть исключение. Для императивного способа ты должен сам обработать исключение - для декларативного - если возникнет исключение - труба дело. Вылетим из программы. Поэтому императивный способ имхо лучше. Единственное, когда применяется декларативный способ - проверки среда выполнения делает сама. Например, если для сборки указан атрибут - среда выполнения сама проверяет по всему коду нет ли недопустимых действий. Используется рефлексия и если метод А вызывает метод В, причем метод В требует полномочий, котрые метод А отвергает, то затребования полномочий не будет. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Императивная стратегия даёт возможность самостоятельно заниматься контролем исключений. Понятно.
Хорошо, а вот, допустим, использование атрибута
чем отличается от использования ключевого слова params? Описанные Вами правила поведения здесь действуют, т.е. является ли это примером декларативности/императивности? Что-то не очень понимаю, в чём бы это могло выразиться... Это сообщение отредактировал(а) marcusmae - 1.10.2007, 18:10 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
тут даже не в секьюрити дело. Я смотрю. тема вырождается в объяснение правил использования атрибутов... и синтаксиса С#?
Да, это декларативное программирование, но атрибут - это специфическая конструкция, предназначенная для использования рефлексией и описать ее можно тоже только через конструкции, понятные рефлексии, т.е. декларативно. Секъюрити здесь ни при чем. Декларативное программирования секъюрити возможно лишь потому, что среда выполнения, при работе с кодом любит и умеет работать с рефлексией. Но не нужно путать причину со следствием. Секъюрити просто использует (как дополнительную, или альтернативную, возможность своей настройки) сушествующую технологию рефлексии (атрибутов), вот и все. различия между params keyword и ParamArrayAttribute описаны в msdn
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Действительно недостаточно хорошо понимаю атрибуты. Теперь вроде по-лучше. Именно потому и спросил, что фраза является весьма мягким пожеланием, и причин/каких-либо различий не объясняется. tol05, большое спасибо за Ваши ответы. Я узнал много нового. -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |