Можно ли из кода ActiveX проверить, находится ли текущая страница (сайт) в зоне надежных сайтов? - PullRequest
0 голосов
/ 02 марта 2011

Привет У меня есть устаревший ActiveX (ATL), который работает правильно, если загружен из зоны безопасности надежных сайтов.Я хочу добавить подтверждение в коде, быть уверенным, что клиент добавил хост activeX к доверенным сайтам, а если не просто дать предупреждение.

Какой API мне следует использовать?(браузер IE7 и UP).

Спасибо

1 Ответ

1 голос
/ 02 марта 2011

Вы можете сопоставить URL с зоной в собственном коде, используя IInternetSecurityManager :: MapUrlToZone .

Пример кода из MSDN:

const char* rgZoneNames[] = { "Local", "Intranet", "Trusted", "Internet", "Restricted" };

IInternetSecurityManager* pInetSecMgr;
HRESULT hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_ALL,
                              IID_IInternetSecurityManager, (void **)&pInetSecMgr);   
if (SUCCEEDED(hr))
{
    DWORD dwZone;
    hr = spInetSecMgr->MapUrlToZone(szUrl, &dwZone, 0);
    if (hr == S_OK) {
        if (dwZone < 5) {
            printf("ZONE: %s (%d)\n", rgZoneNames[dwZone], dwZone);
        } else {
            printf("ZONE: Unknown (%d)\n", dwZone);
        }
    } else {
        printf("ZONE: Error %08x\n", hr);
    }

    pInetSecMgr->Release();
} 
...