CASPOL, FullTrust и запуск элемента управления ActiveX в IE с FullTrust на основе URL-адреса

StackOverflow https://stackoverflow.com/questions/1050574

Вопрос

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

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

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

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">
Это было полезно?

Решение

Давным-давно я где-то читал, что для пользовательских элементов управления .Net доказательство 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-битном caspol, а потом бился головой о стену, потому что это не работало.Оказывается, я использовал 64-битный IE8, потому что при этом создавался файл IEDebug.log.Лучше всего установить разрешения для обеих версий.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top