Сведения о вопросе

Htmlщик

00:03, 29th August, 2020

Теги

.net   security    

Запуск сборок "partially trusted" .NET из общего сетевого ресурса

Просмотров: 434   Ответов: 4

Когда я пытаюсь запустить .NET assembly ( boo.exe ) из общего сетевого ресурса (подключенного к диску), это не удается, так как он только частично доверен:

Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers.
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at BooCommandLine..ctor()
   at Program..ctor()
   at ProgramModule.Main(String[] argv)
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///H:/boo-svn/bin/boo.exe

С инструкциями из сообщения в блоге я добавил политику к конфигурации .NET, полностью доверяя всем сборкам с file:///H:/* в качестве их URL. Я проверил это, введя URL file:///H:/boo-svn/bin/boo.exe в средство оценки Assembly в конфигурации .NET и отметив, что boo.exe имеет неограниченное разрешение (которого у него не было до политики).

Даже с разрешения, boo.exe не работает. Я все еще получаю то же самое сообщение об ошибке.

Что я могу сделать, чтобы устранить эту проблему? Есть ли другой способ запустить "partially trusted" сборок из общих сетевых ресурсов без необходимости что-то менять для каждого assembly, который я хочу запустить?



  Сведения об ответе

lats

10:09, 18th August, 2020

С .NET 3.5 SP1 .NET сборок, запущенных из общих ресурсов UNC, имеют полные разрешения.

См. статью Брэда Абрамса разрешить .exes запускаться из общих сетевых ресурсов для решения проблем и обсуждения, и, наконец, последующая версия .NET 3.5 SP1 позволяет запускать управляемый код из общего сетевого ресурса .


  Сведения об ответе

ITSME

13:57, 24th August, 2020

Я решил эту проблему, используя caspol , как указано в блоге Джонни Хьюза, запустив приложение .Net из общего сетевого ресурса :

caspol -addgroup 1.2 -url file:///H:/* FullTrust

Похоже, что конфигурация .NET GUI для управления политиками просто не работает.


  Сведения об ответе

COOL

20:12, 7th August, 2020

Взгляните на программу 'caspol.exe' (поставляемую с .NET временами выполнения). Вам придется сделать это на машине, с которой вы пытаетесь запустить приложение. Я был не в состоянии 'mark' и assembly (вероятно, только я). Однако, используя caspol и установив соответствующее разрешение для моего приложения LocalIntranet_Zone, исправьте мою аналогичную проблему.

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


  Сведения об ответе

qwerty101

06:27, 9th August, 2020

Я думаю, что вы хотите добавить атрибут AllowPartiallyTrustedCallers к вашему assembly. Сообщение об ошибке подразумевает, что что-то, вызывающее ваш boo.exe assembly, не является полностью доверенным, и boo.exe не имеет этого атрибута, разрешающего это.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться