缓解:X509CertificateClaimSet.FindClaims 方法

从面向 .NET Framework 4.6.1 的应用开始,X509CertificateClaimSet.FindClaims 方法尝试将 claimType 参数与其 SAN 字段中的所有 DNS 条目进行匹配。

影响

此更改仅影响面向从 .NET Framework 4.6.1 开始的 .NET Framework 版本的应用。

对于面向 .NET Framework 先前版本的应用,X509CertificateClaimSet.FindClaims 方法尝试仅将 claimType 自变量与最后一个 DNS 条目进行匹配。

缓解措施

如果无需进行此更改,则面向从 .NET Framework 4.6.1 开始的 .NET Framework 版本的应用可通过将以下配置设置添加到应用配置文件的 <runtime> 部分来选择放弃更改:

<runtime>  
   <AppContextSwitchOverrides value="Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate=true" />
</runtime>  

此外,面向 .NET Framework 旧版本但在 .NET Framework 4.6.1 或更高版本下运行的应用可通过将以下配置设置添加到应用配置文件的 <runtime> 部分来选择实现此行为:

<runtime>  
    <AppContextSwitchOverrides value="Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate=false" />
</runtime>  

请参阅