CASPOL, FullTrust и запуск элемента управления ActiveX в IE с FullTrust на основе URL - PullRequest
1 голос
/ 26 июня 2009

Я настроил элемент управления ActiveX для запуска на веб-странице. Сервер может обслуживать эту веб-страницу самому себе, но другие компьютеры в интрасети и Интернете не могут получить к ней доступ.

Настройки Caspol выглядят так:

Группы кодов:

1.  All code: FullTrust
   1.1.  Zone - MyComputer: FullTrust
      1.1.1.  StrongName - (omitted) : FullTrust
      1.1.2.  StrongName - 00000000000000000400000000000000: FullTrust
   1.2.  Zone - Intranet: FullTrust
      1.2.1.  All code: Same site Web
      1.2.2.  All code: Same directory FileIO - 'Read, PathDiscovery'
   1.3.  Zone - Internet: Internet
      1.3.1.  All code: Same site Web
   1.4.  Zone - Untrusted: Nothing
   1.5.  Zone - Trusted: Internet
      1.5.1.  All code: Same site Web
   1.6.  Url - http://MYSERVERNAME/APPLICATIONNAME/*: FullTrust
Success

Приложение, к которому я пытаюсь получить доступ, относится к группе 1.6. Я что-то здесь не так делаю?

[Изменить] Стоит отметить, что журнал ошибок IEDebug на машине, пытающейся получить доступ к элементу управления из интрасети, отображает длинное исключение. Наиболее примечательным из этого является:

System.Net.WebPermission
The first permission that failed was:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

Давным-давно я где-то читал, что для .Net usercontrols доказательство URL не работает. Работают только доказательства Зоны и Зоны.

caspol -machine -quiet -addgroup Trusted_Zone -site mysite.com FullTrust -name mysite -description "Code group granting trust to code from mysite.com"

Вы можете сделать это для каждой зоны.

При использовании IE8 убедитесь, что mysite.com добавлен в список надежных сайтов 3 . Я не уверен, что защищенный режим должен быть выключен.

Когда вы работаете в 64-битной системе, есть два caspol с отдельными разрешениями:

  • C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ caspol.exe
  • C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Caspol.exe

Я много раз устанавливал разрешения на 32-битном касполе, а затем бился головой о стену, потому что это не сработало. Оказывается, я использовал 64-битный IE8, потому что это сделал IEDebug.log. Лучше всего установить разрешения для обеих версий.

0 голосов
/ 04 февраля 2013

Как оказалось, это не было проблемой доверия вообще. DLL, которая требовалась для запуска приложения, отсутствовала в каталоге bin приложения. Следовательно, приложение пыталось извлечь требуемую DLL из GAC, что было неправильно. Развертывание с необходимой DLL решило проблему.

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

...