Вопрос о безопасности кодового доступа (CAS)

Я изучаю безопасность доступа для кода .NET 2.0. Мое текущее понимание следующее:

Базовый механизм CAS заключается в том, что среда CLR собирает определенные свидетельства из сборки, а затем использует свидетельства и политику для выработки набора разрешений для кода сборки. А код сборки не может делать ничего, кроме этого набора разрешений.

Свидетельства используются для классификации определенной сборки в определенную группу кода, а набор разрешений предоставляется на уровне детализации группы кода.

CLR может собирать доказательства нескольких типов во время выполнения.

Легко определить такие свидетельства, как Application Directory, GAC, Hash, Strong Name.

Но как определить такие доказательства, как Издатель, Сайт, Зона, URL? Где хранятся эти доказательства? Являются ли они частью метаданных сборки? Я не думаю, что такие доказательства, как зона или сайт, должны быть частью метаданных.

Большое спасибо.


person smwikipedia    schedule 04.10.2010    source источник


Ответы (1)


На следующей странице сделано все возможное, чтобы объяснить, как эта информация получена.

Суть в том, что большая часть этой информации не относится к самой сборке, а предоставляется средой размещения CLR. Примеры хостов включают

  • Браузер
  • ASP.Net
  • Shell Host (обычные приложения)

Эти хосты сами предоставляют CLR информацию о сайте, зоне и т. Д. Для данной сборки.

person JaredPar    schedule 04.10.2010
comment
Разве CAS не был удален / устарел в .NET 4.0, потому что его почти никто не использовал? - person pero; 04.10.2010
comment
@Peter: CAS все еще жив в .NET 4.0. Однако сама среда CLR больше не навязывает политику CAS. Вместо этого политика CAS навязывается исключительно хостами, такими как ASP.NET и IE. Подробнее см. blogs.msdn.com/b/shawnfa/archive/2010/02/24/. - person Nicole Calinoiu; 04.10.2010