Приложение.Net 2.0 из сетевой папки без FullTrust

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

3 ответа

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

Самый простой способ настроить 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)]

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

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

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

Другие вопросы по тегам