Да и нет.
К сожалению, вы правы - разработчики редко используют CAS вообще, не говоря уже об использовании его в полном объеме. В очень немногих ситуациях я вижу, что они действительно делают это (хорошо, это не программисты, а организация, вынуждающая их ....)
Кроме того, чтобы пользователи могли ограничивать сборку, загружаемую из Интернета (например) - хотя это редко используется вне Silverlight - я видел два основных применения CAS.
Во-первых, общие ограничения политики, как правило, самый простой способ получить ваши ноги влажными CAS (особенно, поскольку VS может автоматически генерировать файл политики для вас). Я видел это в использовании (редко), когда у чувствительного предприятия (например, банков) есть сторонняя пользовательская разработка системы, которая должна быть безопасной. Это может принести им пользу, добавив дополнительные ограничения на то, что они не знают, что делают их программисты.
Во-вторых, очень специфические требования к ссылке в (опять же редкой) ситуации, когда у вас есть модуль, работающий с относительно высокими привилегиями, и хотите, чтобы в ваш модуль вносились только конкретные сборки. Например, только на прошлой неделе у меня был клиент с модулем, который записывал в ActiveDirectory, и хотел ограничить доступ к этой функции только из конкретной системы.
Конечно, CAS намного больше, чем это, но это действительно два лучших места для начала. Как правило, и это, конечно, верно для всего, не решайте использовать его только потому, что его там, если только он не отвечает потребностям, которые у вас есть. Политика является самой простой, и имеет смысл сделать это раньше времени.
см. Также http://stackoverflow.com/questions/1566934/is-code-access-security-of-any-real-world-use –