You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 9中如何在EWS API中自定义服务器证书验证回调以接受所有SSL证书

.NET 9中如何在EWS API中自定义服务器证书验证回调以接受所有SSL证书

嗨,我来帮你搞定这个问题!在.NET 9里要让EWS Managed API跳过SSL证书验证、接受所有证书,核心就是给EWS服务配置自定义的证书验证回调,下面我一步步给你讲具体操作:

  • 首先创建一个HttpClientHandler,在里面设置自定义的证书验证逻辑,让它始终返回true(也就是不管证书是否合法都接受):

    var handler = new HttpClientHandler();
    // 自定义证书验证回调,无条件接受所有SSL证书
    handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
    
  • 接下来把这个handler关联到你的ExchangeService实例上。EWS底层是用HttpClient发送请求的,我们可以通过HttpClientFactory来注入自定义的HttpClient:

    // 初始化EWS服务实例,指定对应的Exchange版本
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2016);
    
    // 配置你的EWS服务凭据和地址(替换成你自己的信息)
    service.Credentials = new WebCredentials("你的用户名", "你的密码");
    service.Url = new Uri("https://你的Exchange服务器地址/EWS/Exchange.asmx");
    
    // 把自定义的handler绑定到EWS服务上
    service.HttpClientFactory = () => new HttpClient(handler);
    
  • 最后执行你原来的订阅代码就可以了,这时候EWS请求就会跳过SSL证书验证:

    StreamingSubscription streamingsubscription = Task.Run(() => service.SubscribeToStreamingNotifications(
        new FolderId[] { WellKnownFolderName.Calendar }, 
        new EventType[] { EventType.Created, EventType.Deleted, EventType.Modified }
    )).Result;
    

⚠️ 特别提醒:这种接受所有证书的操作只适合开发/测试环境,生产环境绝对不能这么做,会导致你的服务面临中间人攻击等严重安全风险,生产环境一定要使用合法的SSL证书并启用正常的证书验证逻辑!

备注:内容来源于stack exchange,提问作者Kosulin Kirill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:08:20