Можно ли из элемента управления ActiveX определить, из какого домена он создается? - PullRequest
0 голосов
/ 18 августа 2010

Если возможно, я хочу предотвратить случайное выполнение элемента управления ActiveX ненадежными страницами, поскольку его можно использовать для загрузки и запуска файла.

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

Есть ли способ для элемента управления ActiveX запросить IE и спросить, с какого домена была загружена страница?

1 Ответ

2 голосов
/ 18 августа 2010

Да, реализуйте IObjectWithSite и кэшируйте указатель, который вы указали в SetSite().

Затем:

  1. QueryInterface() ваш сайт для IID_IServiceProvider.
  2. QueryService() IServiceProvider для SID_STopLevelBrowser, IID_IServiceProvider.
  3. QueryService() верхний уровень IServiceProvider для SID_SWebBrowserApp, IID_IWebBrowser2.
  4. Звоните get_LocationURL .
...