首页 文章

如果当前页面(站点)位于“可信站点”区域,是否可以从ActiveX代码中进行检查?

提问于
浏览
0

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

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

谢谢

1 回答

  • 1

    您可以使用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();
    }
    

相关问题