WebBrowser Control(三)Privacy Alert对话框

  • WebBrowser Control浏览网页过程中会跳出如下对话框:

  • 此对话框大体意思是提示需要保存cookies数据在本地,需用户确认。
  • 如何禁止弹出此对话框:
    1. 在IInternetSecurityManager::ProcessUrlAction中允许或禁止cookie相关URL action(但悲催的是进行cookie相关操作时,此函数没有被调用。。。)
       1 if(URLACTION_COOKIES_THIRD_PARTY == dwAction ||
      2 URLACTION_COOKIES_SESSION_THIRD_PARTY == dwAction ||
      3 URLACTION_COOKIES_SESSION == dwAction ||
      4 URLACTION_COOKIES_ENABLED == dwAction ||
      5 URLACTION_COOKIES == dwAction)
      6 {
      7 dwPolicy = URLPOLICY_DISALLOW;
      8 *(DWORD*)pPolicy = dwPolicy;
      9 return S_OK;
      10 }
    2. 一种偷懒的办法是把所有URL都映射到URLZONE_UNTRUSTED(禁止cookie)或URLZONE_LOCAL_MACHINE(允许cookie):
      1 STDMETHOD (MapUrlToZone)(LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags)
      2 {
      3 *pdwZone = URLZONE_UNTRUSTED;//URLZONE_LOCAL_MACHINE;
      4 return S_OK;
      5 }
    3. 还有一种办法是修改注册表(包括前面文章的提交数据表单时的对话框,也可以用此方法):
      • HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Internet Settings//zones//3
      • #define URLACTION_COOKIES_THIRD_PARTY                          0x00001A05
        #define URLPOLICY_ALLOW                0x00
        #define URLPOLICY_QUERY                0x01
        #define URLPOLICY_DISALLOW             0x03
    4. 参考:
      1. IInternetSecurityManager and cookies
      2. About URL Security Zones
原文地址:https://www.cnblogs.com/dahai/p/2215648.html