webbroswer屏蔽Windows2003下“增强安全设置”窗口的方法
来源:互联网 发布:最好看的拳击电影知乎 编辑:程序博客网 时间:2024/05/16 00:30
在windows2003下,一般情况下当我们用IE访问一个站点的时候会弹出“增强的安全设置”的对话框,很让人讨厌,单我们自己的webbroswer访问的时候也会有这种情况,有些让我们显得很被动,有什么方法能屏蔽它呢?我给大家做个示范吧。
1 在引用webbroswer的窗口类中继承IInternetSecurityManager和IServiceProvider接口,具体代码如参考我的前一篇博文。
2 重载以下方法:SetSecuritySite,GetSecuritySite,MapUrlToZone,GetSecurityId,ProcessUrlAction,QueryCustomPolicy,SetZoneMapping,GetZoneMappings,具体代码可参考
virtual HRESULT STDMETHODCALLTYPE SetSecuritySite(
/* [unique][in] */ IInternetSecurityMgrSite *pSite) { return INET_E_DEFAULT_ACTION; }
virtual HRESULT STDMETHODCALLTYPE GetSecuritySite(
/* [out] */ IInternetSecurityMgrSite **ppSite) { return INET_E_DEFAULT_ACTION; }
virtual HRESULT STDMETHODCALLTYPE MapUrlToZone(
/* [in] */ LPCWSTR pwszUrl,
/* [out] */ DWORD *pdwZone,
/* [in] */ DWORD dwFlags) { *pdwZone = 2; return S_OK; }
virtual HRESULT STDMETHODCALLTYPE GetSecurityId(
/* [in] */ LPCWSTR pwszUrl,
/* [size_is][out] */ BYTE *pbSecurityId,
/* [out][in] */ DWORD *pcbSecurityId,
/* [in] */ DWORD_PTR dwReserved) { return INET_E_DEFAULT_ACTION; }
virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction(
/* [in] */ LPCWSTR pwszUrl,
/* [in] */ DWORD dwAction,
/* [size_is][out] */ BYTE *pPolicy,
/* [in] */ DWORD cbPolicy,
/* [in] */ BYTE *pContext,
/* [in] */ DWORD cbContext,
/* [in] */ DWORD dwFlags,
/* [in] */ DWORD dwReserved) { return URLPOLICY_ALLOW; }
virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy(
/* [in] */ LPCWSTR pwszUrl,
/* [in] */ REFGUID guidKey,
/* [size_is][size_is][out] */ BYTE **ppPolicy,
/* [out] */ DWORD *pcbPolicy,
/* [in] */ BYTE *pContext,
/* [in] */ DWORD cbContext,
/* [in] */ DWORD dwReserved) { return INET_E_DEFAULT_ACTION; }
virtual HRESULT STDMETHODCALLTYPE SetZoneMapping(
/* [in] */ DWORD dwZone,
/* [in] */ LPCWSTR lpszPattern,
/* [in] */ DWORD dwFlags) { return INET_E_DEFAULT_ACTION; }
virtual HRESULT STDMETHODCALLTYPE GetZoneMappings(
/* [in] */ DWORD dwZone,
/* [out] */ IEnumString **ppenumString,
/* [in] */ DWORD dwFlags) { return INET_E_DEFAULT_ACTION; }
3 接着在QueryInterface方法中处加上如下代码:
if (IsEqualIID(riid,IID_IServiceProvider))
{
*ppv = static_cast<IServiceProvider*>(this);
return S_OK;
}
4 最后在QueryService方法中加入以下实现即可:
if (IsEqualIID(riid, IID_IInternetSecurityManager))
{
*ppvObject = static_cast<IInternetSecurityManager*>(this);
return S_OK;
}
以上四步即可完全屏蔽那可恶的窗口了,具体原理请参见MSDN,本人不多说。
- webbroswer屏蔽Windows2003下“增强安全设置”窗口的方法
- apache在windows2003下的安全设置
- windows2003的安全设置
- 关于自定义webbroswer,禁止弹出文件下载窗口的方法
- Windows2003组件的安全设置
- 最强的windows2003安全设置
- Windows2003下IIS6结合ServU的安全设置(黑否)
- Windows2003 web 服务器 组件的安全设置
- Windows2003 web 服务器 组件的安全设置
- Windows2003 安全设置
- Windows2003安全设置
- windows2003安全设置
- Windows2003安全设置大全
- WINDOWS2003 安全设置
- windows2003服务器安全设置
- windows2003的IIS详细设置方法
- windows2003的IIS详细设置方法
- windows2003的IIS详细设置方法
- 如何提高问卷回收率的几个小提示
- 工作中的做人原则
- (zz)CUDA中三维纹理的绑定和使用
- js提交表单错误
- 我的寄居生活
- webbroswer屏蔽Windows2003下“增强安全设置”窗口的方法
- extern用法详解(转)
- Hoffman
- Java-->JDBC简介
- 武凯:水煮Top
- [ 二分图匹配 ] 匈牙利算法 和 KM算法 总结
- svn添加目录
- 使用@@,select case及Exec动态执行SQL语句
- 如何使用lsp的hook技术解决TCP链接超时测试场景的模拟