• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中用SslEmptyCache系统API来清除SSL状态

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

如果需要编程实现IE选项中清除SSL状态的功能,可用SslEmptyCache函数,SslEmptyCache函数定义在Schannel.dll中,采用动态链接即可。

 

代码如下:

using System;
using System.Runtime.InteropServices;

namespace Demo
{
    
public class Ssl
    {
        [DllImport(
"kernel32.dll")]
        
internal static extern IntPtr LoadLibrary(String dllname);

        [DllImport(
"kernel32.dll")]
        
internal static extern IntPtr GetProcAddress(IntPtr hModule, String procname);

        
internal delegate bool SslEmptyCacheHelper(IntPtr targetName, int flags);

        
/// <summary>
        
/// UNICODE版
        
/// </summary>
        
/// <returns></returns>
        public bool SslEmptyCacheW()
        {
            IntPtr schannel 
= LoadLibrary("Schannel.dll");
            IntPtr procaddr 
= GetProcAddress(schannel, "SslEmptyCacheW");
            SslEmptyCacheHelper helper 
= (SslEmptyCacheHelper)Marshal.GetDelegateForFunctionPointer(procaddr, typeof(SslEmptyCacheHelper));
            
return helper(IntPtr.Zero, 0);
        }

        
/// <summary>
        
/// ANSI版
        
/// </summary>
        
/// <returns></returns>
        public bool SslEmptyCacheA()
        {
            IntPtr schannel 
= LoadLibrary("Schannel.dll");
            IntPtr procaddr 
= GetProcAddress(schannel, "SslEmptyCacheA");
            SslEmptyCacheHelper helper 
= (SslEmptyCacheHelper)Marshal.GetDelegateForFunctionPointer(procaddr, typeof(SslEmptyCacheHelper));
            
return helper(IntPtr.Zero, 0);
        }
    }

}

 

参考资料:

1、SslEmptyCache Function

2、.NET 2.0 中 GetDelegateForFunctionPointer 函数实现原理浅析 [草稿]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
那些年刚学C#——搜壶浏览器(一)发布时间:2022-07-13
下一篇:
C++fill()和fill_n()函数用法(转)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap