// AddTrustSite.cpp : Defines the entry point for the application.

//一个网站当被某个客户端认为是可信站点后,从该站点下载的网页控件将被客户端信任且运行,那如何向客户端增加可信站点,是一项技术。

//传统的办法是直接操作注册表。但是据我研究,在winXP和win2003及winVista上,可信站点列表在注册表中的位置并不相同,且根据ie的不同版本,该位置也有不少差异。

//因此如果在不同平台和ie版本上增加可信站点,需要大量的判断。

//这里给出了一个办法,是直接调用ie的com组件,通过该com组件的接口,向系统中直接添加可信站点,且不被系统中是否为https站点的限制。

//编译后,支持命令行的方式运行。运行方式为:” AddTrustSite.exe http://www.sina.com.cn”

//#include “urlmon.h”

#include “windows.h”
#include “stdio.h”

bool AddTrustSite(LPCTSTR lpSiteName);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
if(AddTrustSite(lpCmdLine))
{
MessageBox(NULL, “AddTrustSite success!”, “Note”, MB_OK | MB_ICONEXCLAMATION);
}
else
{
MessageBox(NULL, “AddTrustSite failed!”, “Note”, MB_OK | MB_ICONEXCLAMATION);
}
return 0;
}

bool AddTrustSite(LPCTSTR lpSiteName)
{
HRESULT hr;
IInternetSecurityManager *pSecurityMgr;
IInternetZoneManager *pZoneMgr;
int iUnicodeLen = 0;
WCHAR *pwcharUnicode = NULL;
ZONEATTRIBUTES zoneAttributes;
LPWSTR lpTrustSite = NULL;
#ifdef _UNICODE
lpTrustSite = SysAllocString(lpSiteName);
#else
iUnicodeLen = MultiByteToWideChar(CP_ACP, 0, lpSiteName, strlen(lpSiteName), NULL, 0);
if(iUnicodeLen < 1)
{
return false;
}

 pwcharUnicode = new WCHAR[iUnicodeLen+1];memset(pwcharUnicode, 0x00, sizeof(WCHAR)*(iUnicodeLen+1));if(iUnicodeLen != MultiByteToWideChar(CP_ACP, 0, lpSiteName, strlen(lpSiteName), pwcharUnicode, iUnicodeLen)){if(pwcharUnicode != NULL){delete [] pwcharUnicode;pwcharUnicode = NULL;}return false;}

lpTrustSite = SysAllocString(pwcharUnicode);
#endif
::CoInitialize(NULL);
hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_INPROC_SERVER, IID_IInternetSecurityManager, (void**)&pSecurityMgr);
hr = CoCreateInstance(CLSID_InternetZoneManager,NULL,CLSCTX_INPROC_SERVER,IID_IInternetZoneManager,(void**)&pZoneMgr);

 pZoneMgr->GetZoneAttributes((DWORD)2,&zoneAttributes);if((zoneAttributes.dwFlags & ZAFLAGS_REQUIRE_VERIFICATION) == ZAFLAGS_REQUIRE_VERIFICATION){zoneAttributes.dwFlags &= ~ZAFLAGS_REQUIRE_VERIFICATION;pZoneMgr->SetZoneAttributes((DWORD)URLZONE_TRUSTED,&zoneAttributes);pSecurityMgr->SetZoneMapping((DWORD)URLZONE_TRUSTED, lpTrustSite, (DWORD)SZM_CREATE );zoneAttributes.dwFlags |= ZAFLAGS_REQUIRE_VERIFICATION;pZoneMgr->SetZoneAttributes((DWORD)URLZONE_TRUSTED,&zoneAttributes);}else{pSecurityMgr->SetZoneMapping((DWORD)URLZONE_TRUSTED, lpTrustSite, (DWORD)SZM_CREATE );}pSecurityMgr->Release();pZoneMgr->Release();

SysFreeString(lpTrustSite);

 if(pwcharUnicode != NULL){delete [] pwcharUnicode;pwcharUnicode = NULL;}

::CoUninitialize();
return true;
}

IE浏览器之可信任站点相关推荐

  1. 如何关闭windows 2003浏览网页时信任站点添加提示以及解决不能加入可信任的站点

    最近由于要测试软件需要在windows 2003环境运行,于是将笔记本安装了windows 2003,安装完后一打开浏览器查询网上信息时,发现IE浏览器总是"不厌其烦"地提示,&q ...

  2. 浏览安全怎么提升?教你设置安全浏览器信任站点

    对于很多人而言,在使用浏览器的时候,都会想要一款清爽干净的浏览器.我们处在信息爆炸的时代,随便打开一个软件,最先看到的就是各种广告推荐,以及娱乐新闻推送,我们偶尔也会被这些信息所吸引.但是很多时候,我 ...

  3. Android集成三方浏览器之Crosswalk

    上一篇讲解了腾讯 X5 内核的集成,这一篇是讲解 Crosswalk 的集成 Crosswalk 也是采用了Chromenium 内核,是一款开源的 web 引擎,开发者可以直接把 Crosswalk ...

  4. windows客户端通过脚本文件添加信任站点

    公司新上线了一个OA系统,需要设置信任站点以及Active加载项才可以正常浏览访问.如果在没有域环境或者有很多分公司,那么通过脚本的方法,让客户端下载后,双击运行便可以设置成功.这样的方式将大大提高用 ...

  5. 微软与网景与浏览器之争

    一 1975年,当微软诞生的时候,比尔·盖茨只有19岁,他的员工只有3个,当年的营业收入仅1.6万美元.让微软腾飞的"决定性产品",便是比尔于1985年推出的Windows(视窗) ...

  6. IE添加可信任站点,启用ActiveX插件批处理

    I添加可信任站点IP地址为:192.168.1.108,启用ActiveX插件执行以下批处理命令: reg add "HKCU\Software\Microsoft\Windows\Curr ...

  7. 证书问题及门户网站设置为可信任站点

    查看电脑证书:win+R 输入certmgr.msc 安装新证书流程: 在所要的网站下载新证书,现在完成后打开会提示安装. 因为新证书是不受信任的,所以要将证书变为受信任状态进入安装流程中有下面一步操 ...

  8. js设置注册表中ActiveX,并添加信任站点解决IE弹出安全警告

    1.确认服务端IP通过js将此IP设置为可信任站点 var WshShell=new ActiveXObject("WScript.Shell"); //添加可信站点或IP Wsh ...

  9. [转]Android 和 iPhone 浏览器之战,第 2 部分: 为 iPhone 和 Android 构建基于浏览器的应用程序...

    简介: 本文是共两部分的系列文章 "Android 和 iPhone 浏览器之战" 的第 2 部分,主要关注为 iPhone 和 Android 开发基于浏览器的应用程序.在第 1 ...

最新文章

  1. Python基础知识详解
  2. nagios监控haproxy(借助脚本)
  3. linnux 流量控制模块tc_可编程控制器PLC基本工作原理(第一颗)
  4. 微服务如何解决分布式事务
  5. 一个机械系毕业生的感言
  6. Hive优化(再一遍系统复习)
  7. Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解
  8. python画一条水平直线(matplotlib)
  9. tomcat增加处理线程数量
  10. 我的第一款 Drone 插件
  11. mysql 5.6.14 winx64_MySQL-5.6.14-winx64的免安装配置方法
  12. 微信小程序订阅消息:用云服务编写订阅消息超详细描述
  13. VtigerCRM 点击拨号和来电弹屏 PBX Manager Module
  14. MySQL关系运算和连接运算,数据库的关系运算和完整性约束
  15. 计算机系统如何禁止文件删除功能,Win7如何禁止在C盘上安装软件?|win7系统c盘哪些文件是可以删除的...
  16. md5加密原理!!!【转】
  17. 10大主流压力/负载/性能测试工具推荐
  18. 2011-07 《信息资源管理 02378》真卷解析,逐题解析+背诵技巧
  19. face_detect
  20. @Transactional 事务注解详解

热门文章

  1. pytest测试框架详细讲解part01
  2. python中求两点之间的距离_python – 列表中两点之间的距离公式
  3. 在家巧用树莓派(广告屏蔽,下载机,NAS服务器,web服务器,私有云)
  4. C#图像处理程序实现--Canny实现 笔记整理(其中的非极大值抑制点)
  5. EBS总账(GL)模块常用表
  6. pytorch实现kaggle猫狗识别(超详细)
  7. 亚马逊英国站玩具UKCA认证简介
  8. 【干货】RPA+AI入门必须知道的39个名词
  9. Web中 C-Lodop 打印常用表单前端排版自定义设置;
  10. python docx 表格复制粘贴_python-docx修改已存在的Word文档的表格的字体格式方法