X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zkontroluje, jestli certifikát odpovídá zadanému názvu hostitele.
public bool MatchesHostname (string hostname, bool allowWildcards = true, bool allowCommonName = true);
member this.MatchesHostname : string * bool * bool -> bool
Public Function MatchesHostname (hostname As String, Optional allowWildcards As Boolean = true, Optional allowCommonName As Boolean = true) As Boolean
Parametry
- hostname
- String
Název hostitele, který se má shodovat.
- allowWildcards
- Boolean
true
umožňuje shodování zástupných znaků pro dNSName
hodnoty v rozšíření alternativního názvu subjektu. V opačném případě false
.
- allowCommonName
- Boolean
true
povolit porovnávání s hodnotou běžného názvu předmětu; v opačném případě . false
Návraty
true
pokud se certifikát shoduje s požadovaným názvem hostitele; Jinak false
Výjimky
Parametr hostname
není platný název hostitele DNS nebo IP adresa.
Certifikát obsahuje několik přípon alternativního názvu subjektu.
-nebo-
Rozšíření alternativního názvu subjektu nebo název subjektu nelze dekódovat.
Poznámky
Tato metoda je platformově neutrální implementace logiky porovnávání hostitelů IETF RFC 6125. Třída SslStream používá validátor názvu hostitele z operačního systému, což může mít za následek odlišné hodnoty z této implementace.
Logický tok této metody je:
- Pokud se název hostitele parsuje jako IPAddress IPAddress, provede se párování ip adres. V opačném případě se párování názvů DNS provede.
- V případě shody IPAddress musí být hodnota přesná shoda s
iPAddress
hodnotou v položce rozšíření Alternativní název předmětu. - Při porovnávání názvů DNS musí být hodnota přesná shoda s
dNSName
hodnotou v položce rozšíření alternativního názvu subjektu nebo zástupným znakem. - Při porovnávání zástupných znaků musí být zástupný znak prvním znakem v záznamu
dNSName
, druhým znakem musí být tečka (.) a položka musí mít délku větší než dva.
Zástupný znak se bude shodovat pouze shostname
hodnotou do první tečky (.), zbývající znaky musí být přesnou shodou. - Pokud neexistuje žádné rozšíření alternativního názvu subjektu nebo rozšíření neobsahuje žádné položky příslušného typu, použije se jako náhradní shoda běžných názvů.
- Pokud název subjektu obsahuje jeden běžný název a tento atribut není definován jako součást relativního rozlišujícího názvu s více hodnotami, pak se název hostitele porovná s hodnotou atributu Common Name.
Všimněte si, že při porovnávání běžných názvů se nepoužívají zástupné znaménky.
Tato implementace považuje SRV-ID
hodnoty nebo URI-ID
hodnoty za mimo rozsah a nebude používat jejich přítomnost jako důvod k tomu, aby se zastavila shoda náhradních DNS-ID
hodnot s parametrem CN-ID
.
Tato metoda nepřevádí názvy hostitelů jiných než ASCII na reprezentaci IDNA. V případě domén Unicode musí volající použít IdnMapping mapovač IDNA nebo jeho ekvivalent.
"Přesné" shody prováděné touto rutinou jsou OrdinalIgnoreCase, protože v názvech domén se nerozlišují velká a malá písmena.
Tato metoda nezjišťuje, jestli je název hostitele autorizovaný důvěryhodnou autoritou. Rozhodnutí o důvěryhodnosti nelze provést bez další kontroly důvěryhodnosti prostřednictvím X509Chain.
Tato metoda nekontroluje, jestli má certifikát id-kp-serverAuth
rozšířené použití klíče (1.3.6.1.5.5.7.3.1).