Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf .NET 10 kan de X500DistinguishedName constructor die een als tekenreeks gecodeerde DN accepteert, eerder geaccepteerde ongeldige invoer weigeren of deze anders coderen op niet-Windows-systemen. Dit komt overeen met coderingsspecificaties en Windows-gedrag.
Vorig gedrag
In eerdere versies van .NET op niet-Windows-systemen werden onjuiste onderscheidende namen toegestaan of gecodeerd op een manier die niet is toegestaan volgens de coderingsregels van X.520. De X500DistinguishedNameFlags.ForceUTF8Encoding-vlag dwong componenten om een UTF8String te gebruiken, zelfs als dit geen geldige weergave was.
Nieuw gedrag
Vanaf .NET 10 genereren onderdelen die in strijd zijn met coderingsregels een CryptographicException op niet-Windows-systemen die overeenkomen met het Windows-gedrag. De X500DistinguishedNameFlags.ForceUTF8Encoding markeert alleen UTF-8-onderdelen indien toegestaan.
Versie uitgebracht
.NET 10
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Verschillende X.500-onderdelen hebben specifieke coderingsregels.
id-at-telephoneNumber moet bijvoorbeeld worden gecodeerd als een ASN.1-PrintableString. Het uitroepteken is ongeldig voor een PrintableString. Houd rekening met de volgende code:
new X500DistinguishedName("Phone=!!");
Deze code heeft een uitzondering in Windows veroorzaakt, maar is gecodeerd als UTF8String in niet-Windows. Op dezelfde manier werd X500DistinguishedNameFlags.ForceUTF8Encoding UTF8String-codering geforceerd gebruikt, zelfs als dit niet was toegestaan.
new X500DistinguishedName("Phone=000-555-1234", X500DistinguishedNameFlags.ForceUTF8Encoding);
Deze wijziging zorgt ervoor dat codering overeenkomt met specificaties en Windows-gedrag.
Aanbevolen actie
Over het algemeen is er geen actie nodig, tenzij compatibiliteit met onjuiste codering is vereist. Gebruik System.Security.Cryptography.X509Certificates.X500DistinguishedNameBuilder om exemplaren te maken met de gewenste codering:
using System.Formats.Asn1;
using System.Security.Cryptography.X509Certificates;
X500DistinguishedNameBuilder builder = new();
builder.Add("2.5.4.20", "000-555-1234", UniversalTagNumber.UTF8String);
X500DistinguishedName dn = builder.Build();