X509Chain ChainPolicy UrlRetrievalTimeout 初始化有什么作用?
What is the effect of X509Chain ChainPolicy UrlRetrievalTimeout initialization?
使用 CSharp,如果我这样做:
System.Security.Cryptography.X509Certificates.X509Chain ch = new System.Security.Cryptography.X509Certificates.X509Chain();
作用是什么:
ch.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(4000);
?
根据https://msdn.microsoft.com/en-us/library/system.timespan(v=vs.110).aspx
我会将 TimeSpan 结构的新实例初始化为指定的滴答数,一个滴答等于 100 纳秒或百万分之一秒。一毫秒有 10,000 个刻度。参考:https://msdn.microsoft.com/en-us/library/system.timespan.ticks(v=vs.110).aspx
我似乎将超时设置为小于一毫秒以下载证书吊销列表。然而,实际上,使用此类代码下载非常大的 CRL 文件需要花费数秒。
那么这条线到底做了什么?
TIA。
This looks like I am setting a timeout to less than a millisecond to download certificate revocation lists
ChainPara.dwUrlRetrievalTimeout = (uint)Math.Floor(timeout.TotalMilliseconds);
因此您有效地将其设置为“0”,从而得到 OS 默认值。这只是一个问题,它必须如何舍入该值才能将其发送到 Windows.
该值映射到 CERT_CHAIN_PARA 上的 dwUrlRetrievalTimeout
,关于它的使用方式并没有太多可说的(下载之间的间隔、消息泵期间的超时等) .但是您可以尝试 TimeSpan.FromMilliseconds(1)
(或其他一些小数字),看看您看到了什么。 1ms 不太可能超过您的 TCP 和 HTTP 连接时间,因此它可能会以 Offline
模式计算链。
使用 CSharp,如果我这样做:
System.Security.Cryptography.X509Certificates.X509Chain ch = new System.Security.Cryptography.X509Certificates.X509Chain();
作用是什么:
ch.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(4000);
?
根据https://msdn.microsoft.com/en-us/library/system.timespan(v=vs.110).aspx
我会将 TimeSpan 结构的新实例初始化为指定的滴答数,一个滴答等于 100 纳秒或百万分之一秒。一毫秒有 10,000 个刻度。参考:https://msdn.microsoft.com/en-us/library/system.timespan.ticks(v=vs.110).aspx
我似乎将超时设置为小于一毫秒以下载证书吊销列表。然而,实际上,使用此类代码下载非常大的 CRL 文件需要花费数秒。
那么这条线到底做了什么?
TIA。
This looks like I am setting a timeout to less than a millisecond to download certificate revocation lists
ChainPara.dwUrlRetrievalTimeout = (uint)Math.Floor(timeout.TotalMilliseconds);
因此您有效地将其设置为“0”,从而得到 OS 默认值。这只是一个问题,它必须如何舍入该值才能将其发送到 Windows.
该值映射到 CERT_CHAIN_PARA 上的 dwUrlRetrievalTimeout
,关于它的使用方式并没有太多可说的(下载之间的间隔、消息泵期间的超时等) .但是您可以尝试 TimeSpan.FromMilliseconds(1)
(或其他一些小数字),看看您看到了什么。 1ms 不太可能超过您的 TCP 和 HTTP 连接时间,因此它可能会以 Offline
模式计算链。