Приложение .Net 2.0 из сетевой папки без FullTrust - PullRequest
2 голосов
/ 08 января 2009

Я пытаюсь запустить приложение .Net 2.0 из общего сетевого ресурса без использования набора разрешений FullTrust. Я хочу создать новый набор разрешений, который имеет только те разрешения, которые требуются для моей сборки, а затем назначить его исполняемому файлу на общем пути. Можно ли сделать это? Из моих ограниченных экспериментов я обнаружил, что не могу заставить работать какое-либо приложение из общего сетевого ресурса без FullTrust. Я пытался создать новый набор разрешений, а также пробовал все и другие наборы разрешений, но, похоже, ни один из них не работает. Кто-нибудь имел опыт работы с этим?

Ответы [ 3 ]

2 голосов
/ 08 января 2009

Вам необходимо подписать свои сборки строгим именем, а затем установить для политики безопасности для своего строгого имени полное доверие.

Самый простой способ настроить FullTrust для всего кода, подписанного вашим строгим именем:

caspol.exe -q -m -ag MyZone -strong -hex [HexCodeOfYourStrongName] -noname -noversion FullTrust -name MyCode -description "Code trust for my code"';

Если ваш код разделен на несколько сборок, необходимо, чтобы каждая сборка была подписана этим строгим именем. Вам может потребоваться установить атрибут SecurityPermission с требованием ссылки, чтобы безопасность вызывающего абонента была принята.

[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.ControlPrincipal)]
0 голосов
/ 08 января 2009

Предоставление разрешения со строгим именем с полным разрешением FullTrust звучит неплохо, но, к сожалению, моя сборка ссылается на несколько сторонних COM-библиотек, которые также должны иметь строгое имя, если я строго называю основную сборку. Я предполагаю, что наилучшим решением будет дать FullTrust пути, заданному Шоном: CasPol.exe -pp off -m -ag 1.2 -url файл: // \ ShawnFa-Srv / Tools / * FullTrust

0 голосов
/ 08 января 2009

До .NET 3.5 необходимо полностью доверять общему ресурсу для запуска приложения .NET оттуда. Шон объясняет это здесь словами: «без каких-либо изменений в системе CAS по умолчанию мы находимся в бесконечном цикле между загрузкой сборок, содержащих объекты безопасности, и предоставлением им политики. ... войдите в список FullTrust. «

В .NET 3.5 это ограничение преодолевается путем "... предоставления набора FullTrust по умолчанию, заставляющего их действовать так же, как если бы они были запущены непосредственно с вашего компьютера" (из другого поста Шона здесь )

...