IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface 方法 (bits10_3.h)
打开 HTTPS 连接时发送服务器证书。 使用此方法设置要调用的回调以验证这些服务器证书。
语法
HRESULT SetServerCertificateValidationInterface(
IUnknown *certValidationCallback
);
参数
certValidationCallback
类型: IUnknown*
指向实现 IBackgroundCopyServerCertificateValidationCallback 的 对象的指针。 若要删除当前回调接口指针,请将此参数设置为 nullptr
。
返回值
类型: HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
返回值 | 说明 |
---|---|
E_NOINTERFACE | 传递无法查询 IBackgroundCopyServerCertificateValidationCallback 的接口指针。 |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | 作业的状态必须已暂停才能设置回调。 |
注解
如果要对服务器证书执行自己的检查,请使用此方法。
仅当实现 IBackgroundCopyServerCertificateValidationCallback 接口时,才调用此方法。
应用程序终止时,验证接口将变为无效;BITS 不维护验证接口的记录。 因此,应用程序的初始化过程应在要接收证书验证请求的现有作业上调用 SetServerCertificateValidationInterface 。
如果多个应用程序调用 SetServerCertificateValidationInterface 来设置作业的通知接口,则调用它的最后一个应用程序是接收通知的应用程序。 其他应用程序不会收到通知。
如果在证书的 OS 验证过程中发现任何证书错误,则连接将中止,并且永远不会调用自定义回调。 可以通过调用 IBackgroundCopyJobHttpOptions::SetSecurityFlags 自定义 OS 验证逻辑。 例如,可以忽略预期的证书验证错误。
如果 OS 验证通过,则会在完成 TLS 握手和发送 HTTP 请求之前调用 IBackCopyServerCertificateValidationCallback::ValidateServerCertificate 方法。
如果验证方法拒绝证书,作业将转换为 BG_JOB_STATE_TRANSIENT_ERROR ,作业错误上下文为 BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK ,回调错误 HRESULT 。 例如,如果无法 (调用回调,因为在程序退出) 后需要 BITS 来验证服务器证书,则会 BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED作业错误代码。 下次运行应用程序时,它可以通过再次设置验证回调并恢复作业来修复此错误。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1809 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | bits10_3.h (包括 Bits.h) |
Library | Bits.lib |
DLL | Bits.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈