0

您好我有旧版 ActiveX (ATL),如果从受信任的站点安全区域加载,它可以正常工作。我想在代码中添加验证,确保客户将 activeX 的主机添加到受信任的站点,如果不只是给出警告。

我应该使用什么 API?(浏览器是 IE7 和 UP)。

谢谢

4

1 回答 1

1

您可以使用IInternetSecurityManager::MapUrlToZone将 url 映射到本机代码中的区域。

来自 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();
} 
于 2011-03-02T19:04:42.643 回答