清除IE浏览器SSL缓存

    如题,建立SSL连接后,IE浏览器默认会缓存SSL会话状态信息。为了保证下次登录或连接时不再使用缓存中的旧有信息,就必须清理SSL缓存。

    一般,我们可以找到“工具”-“Internet 选项”-“内容”,点击“清除SSL状态”即可:

    但是,如果通过程序自动删除呢?这就需要调用微软提供的API接口来解决了。

    经过Google,网上信息实在少的可怜,不过终于还是找到了解决办法,那就是:

    (1) 调用Schannel.dll库中的SslEmptyCache方法,第一个参数传“null”,第二个参数传“0”

    (2)调用Wininet.dll库中的IncrementUrlCacheHeaderData方法,第一个参数传“14”,第二个参数传Int指针地址(值为0)

    C++代码类似这样:

    

typedef BOOL (CALLBACK *pDelSSL)(LPSTR pszTargetName,DWORD dwFlags);
typedef BOOL (CALLBACK *pDelSSL2)(DWORD inp,DWORD dwFlags);

void CTestDlg::OnOK() 
{

pDelSSL DelSSL;
HINSTANCE hdll = NULL;
hdll = LoadLibrary("Schannel.dll");
if (hdll != NULL)
{
if((DelSSL = (pDelSSL)GetProcAddress(hdll, _T("SslEmptyCacheA"))) == NULL)
{
//MessageBox("加载函数失败");
}
}
BOOL A = DelSSL(NULL,0);

FreeLibrary(hdll);


HINSTANCE h_wininetDLL = LoadLibrary("wininet.dll");
pDelSSL2 DelSSL2 = (pDelSSL2) GetProcAddress(h_wininetDLL,"IncrementUrlCacheHeaderData");
DWORD buf = 0;
A = DelSSL2(14,&buf);

FreeLibrary(h_wininetDLL);

}



转载于:https://my.oschina.net/moson/blog/184744

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值