IInternetZoneManager安全设置

来源:互联网 发布:淘宝羽绒服儿童 编辑:程序博客网 时间:2024/05/22 02:19
   

IE浏览器之可信任站点的安全级别设置

      IE浏览器目前最常用的,应该是IE6~IE9,其中IE6普遍在Windows xp系统中使用,而IE9感觉总是搭着win7在一起使用。IE7  IE8说实话,其实自己很少用的,等同于不熟悉。

     打开Internet Options后,进入“安全”页面,可以看到:Internet、Local intranet、Trusted sites和Restricted sites四个区域,但其实IE浏览前的安全选项共对应了5个区域。关于这个5个区域的介绍,明天再继续。今天只讲IE浏览器安全项--可信任站点的安全级别,这个子项的设置。

   手动设置: 

    下图中粉红色边框中选中的位置就是对IE浏览前--安全--可信任站点的安全级别设置的位置。若选择直接滑动左侧的游标,则所有的配置将采用Windows已定义好的配置,例如若当前的用户将当前的配置设置为中级,则Active控件将必处于启用状态。当然用户也可以点击“Custom Level...”按键,对各相关子项进行逐一设置。

        在代码中进行设置,有两个函数都可以实现:

1)IInternetZoneManager::SetZoneAttributes接口

     IInternetZoneManager是继承字IUnknown的子类,用于管理和设置IE浏览器安全区域的属性。而SetZoneAttributes则是该类的其中的一个方法,用于设置指定区域的属性;与此方法对应的接口是:GetZoneAttributes,获取指定区域的属性。

    两个接口函数的原型如下:


      HRESULT GetZoneAttributes([in] DWORD dwZone, [in, out] ZONEATTRIBUTES *pZoneAttributes);
      HRESULT SetZoneAttributes([in] DWORD dwZone,  [in] ZONEATTRIBUTES *pZoneAttributes);

      其中dwZone指明了当前操作的区域,通常的取值范围为:0、1、2、3、4,其中可信任站点对应2;pZoneAttributes则是用于保存当前属性的指针,指向ZONEATTRIBUTES结构体,该结构体的构成如下:


    typedef struct _ZONEATTRIBUTES    {
         unsigned long cbSize;                                                   //结构体的大小
        WCHAR szDisplayName[MAX_PATH];
        WCHAR szDescription[MAX_ZONE_DESCRIPTION];
        WCHAR szIconPath[MAX_PATH];
        DWORD dwTemplateMinLevel;
        DWORD dwTemplateRecommended;
        DWORD dwTemplateCurrentLevel;                                    //安全级别
        DWORD dwFlags;                                                           
      } ZONEATTRIBUTES, *LPZONEATTRIBUTES;

 示例:

       由于IInternetZoneManager是COM组建类的子类,因此在调用前需调用::CoInitialize(NULL),在程序退出前需调用::CoUninitialize()。具体如下:

      IInternetZoneManager *pzManager = NULL;

      ZONEATTRIBUTES stZoneAttributes = {0};

      HRESULT hResult = E_FAIL;

      ::CoInitialize(NULL);

      hResult = ::CoCreateInstance(CLSID_InternetZoneManager, NULL, CLSCTX_SERVER, IID_IInternetZoneManager, (void*)&pzManager);

      if(S_OK!= hResult)

    {

        return -1; 

    }

 

     hResult = pzManager->GetZoneAttributes(URLZONE_TRUSTED, &stZoneAttributes);

    stZoneAttributes.dwTempLateCurrentLevel = 69632;

    hResult = pzManager->SetZoneAttributes(URLZONE_TRUSTED, &stZoneAttributes);

    ::CoUninitialize();

 2)CopyTemplatePoliciesToZone

     这个接口也可以实现对安全级别的设置,但是不清楚是自己用错了还是函数本身的问题,在IE9下面并不好用。

引用网址如下:

http://msdn.microsoft.com/en-us/library/ms537074(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/ms537088(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/ms537024(v=vs.85).aspx

 

示例是自己直接写的,因为现在的这台电脑上没有环境所以没有运行过。可能参数会有些问题。

另外没有进行错误处理,所以也不太好。

只是因为自己一开始用的时候,不知道是COM的东西没有做初始化,所以遇到了一点小问题,就把他写出来了。

 

 

 

 

    

绿色通道: 好文要顶 关注我 收藏该文与我联系 
!--!
关注 - 0
粉丝 - 0
+加关注
0
0
(请您对文章做出评价)
« 博主上一篇:VC工程改名
» 博主下一篇:IE浏览器兼容模式设置
posted @ 2012-11-01 21:50 !--! 阅读(22) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
沪江网诚聘中级/高级.NET程序员(社区方向)
阿里云入门级云服务器3个月139元(12月31日前)
最新IT新闻:
· 叫好不叫座 Windows 8的问题究竟出在哪?
· 诺基亚与RIM和解 6500万美元到手
· 金融时报:iOS程序优势或被Android赶超
· 美司法部已就惠普收购Autonomy交易展开调查
· 圣诞节iOS和Android设备激活量超1740万台
» 更多新闻...
最新知识库文章:
· 我的道路:如何成为一名程序员
· 程序员的职业素养
· C语言中史上最愚蠢的Bug
· 致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告
· 我眼中的工程师文化
» 更多知识库文章...
原创粉丝点击