Использование системы безопасности .NET Framework

Мне было интересно - действительно ли кто-нибудь из вас использует различные классы в пространстве имен System.Security.Permissions? Я в основном разрабатываю компоненты для настольных ПК / серверов (то есть без Интернета), и общее предположение состоит в том, что FullTrust всегда доступен и тестирование не проводится в средах, для которых это не так. Помимо исходного кода MS (EnterpriseLibrary и т. Д.), Мне еще предстоит увидеть реальный, используемый исходный код, в котором используются указанные конструкции.

Это распространено или мы исключение? Я, конечно, знаю, что не проводить такого рода тестирование - проблема с нашей стороны ...


person Yuval    schedule 04.10.2008    source источник


Ответы (4)


Безопасность доступа к коду .NET более актуальна, когда пользователи запускают код непосредственно с сервера через Интернет, и в этом случае они не обязательно могут доверять ему автоматическое выполнение таких действий, как доступ к файловой системе. Однако я не знаю никого, кто сделал бы свой код таким доступным.

person Mark Cidade    schedule 04.10.2008
comment
Именно такой ответ я искал - похоже, что мы не единственные ... - person Yuval; 04.10.2008
comment
+1. Система .NET CAS сложна, громоздка и создает проблемы, которые трудно отлаживать. Microsoft необходимо продвигать его для среды песочницы Интернета. Но для разработчиков приложений это мало или не приносит никакой пользы, тем более, что большинство угроз исходит от неуправляемого кода. - person Joe; 04.10.2008
comment
Это уже не так, и это было не так давно. Он большой и, возможно, концептуально сложный, но если вы знаете, что хотите сделать, это не слишком сложно сделать. - person AviD; 05.10.2008

Я часто использую PrincipalPermissionAttribute, чтобы требовать, чтобы у пользователя были необходимые права доступа (с использованием ролей) от принципала потока - это экономит много ручных проверок в моем бизнес-коде (очевидно, что пользовательский интерфейс тоже должен проверять и отключать кнопки и т. Д. - это просто перепроверьте на сервере).

Я считаю, что безопасность на основе принципала очень универсальна, особенно с настраиваемым принципалом. Но я не использую CAS.

person Marc Gravell    schedule 04.10.2008

Если вы развертываете настольные приложения с помощью ClickOnce, тогда в игру может вступить песочница безопасности.

person Brad Wilson    schedule 04.10.2008

Я никогда не видел, чтобы кто-то использовал разрешение, отстаивал функциональность.

Я подозреваю, что ряд разработчиков на самом деле не осведомлены о функциональности.

Думаю, было бы полезно ограничить вызовы опасных функций.

Это будет зависеть от того, что вы делаете, но кто хочет сделать развертывание более сложным, чем оно есть?

person alexmac    schedule 04.10.2008
comment
Хотя это полезно, я считаю, что реализация очень сложна. Может быть, поэтому он не очень популярен и не известен. Я потратил много времени на изучение документации и написал несколько статей в стиле HOWTO для рабочей группы разработчиков - консенсус заключался в том, что это сложно использовать и развернуть на практике. - person Yuval; 04.10.2008