Через COM можно получить абсолютный контроль над целевой системой. Например: используя объект ActiveXObject javascript в IE, можно создавать определенные объекты, которые были разработаны для прямого доступа или взаимодействия с системными свойствами и файлами. Можно подумать, что здравый смысл диктует пользователям отключать функции ActiveX в IE сразу после установки браузера, чтобы обеспечить защиту их системы во время серфинга в сети или, по крайней мере, уделять пристальное внимание тому, какие веб-сайты они разрешают. Но я сомневаюсь, что многие среднестатистические пользователи ПК знают, как и зачем это делать, или просто устали от управления ими в течение долгого времени. Я думаю, что любой пользователь ПК или администратор, к которому относится мой класс COM, был бы очень признателен, если бы с этим не сталкивались. К счастью, похоже, что версии IE поставляются в комплекте с ActiveX, отключенным по умолчанию в настоящее время.
Я создал очень универсальную библиотеку классов COM в VB. Я не собирался вызывать его с любого веб-сайта, но эта функция является лишь частью платформы COM. Я хотел бы запретить вызов библиотеки из IE, если веб-сайт не находится в домене, занесенном в белый список, для проактивной защиты пользователя (и, в конечном счете, всей его внутренней сети) от вреда от вредоносных веб-сайтов. Каков наилучший метод в VB.Net, чтобы сказать, какое приложение вызвало мою DLL, чтобы можно было определить, вызывается ли оно из какой-либо команды или процесса, происходящего из IE? И какой домен называется моей DLL?
Редактировать: Я считаю, что это может быть дубликатом. См .: Вызов сборки для получения имени приложения VB.NET
System.Environment.GetCommandLineArgs()(0)
возвращает мне путь к вызывающему приложению. С помощью этой информации я могу сравнить ее с черным / белым списком приложений. На данный момент проблема решена.