0
嗨 我有传统的ActiveX(ATL),如果从可信站点安全区域加载,它可以正常工作。 我想在代码中添加验证,确保客户将activeX主机添加到受信任的站点,并且如果不是仅仅发出警告。如果当前页面(站点)位于受信任的站点区域中,是否可以从ActiveX的代码检查?
我应该使用什么API? (浏览器是IE7和UP)。
谢谢
嗨 我有传统的ActiveX(ATL),如果从可信站点安全区域加载,它可以正常工作。 我想在代码中添加验证,确保客户将activeX主机添加到受信任的站点,并且如果不是仅仅发出警告。如果当前页面(站点)位于受信任的站点区域中,是否可以从ActiveX的代码检查?
我应该使用什么API? (浏览器是IE7和UP)。
谢谢
您可以在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();
}