X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Sprawdza, czy certyfikat jest zgodny z podaną nazwą hosta.
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
Nazwa hosta do dopasowania.
- allowWildcards
- Boolean
true
aby zezwolić na dopasowywanie symboli wieloznacznych dla dNSName
wartości w rozszerzeniu Alternatywnej nazwy podmiotu; w przeciwnym razie false
.
- allowCommonName
- Boolean
true
aby umożliwić dopasowywanie względem wartości nazwy pospolitej podmiotu; w przeciwnym razie , false
.
Zwraca
true
jeśli certyfikat jest zgodny z żądaną nazwą hosta; Inaczej false
Wyjątki
Parametr hostname
nie jest prawidłową nazwą hosta DNS ani adresem IP.
Certyfikat zawiera wiele rozszerzeń alternatywnej nazwy podmiotu.
-lub-
Nie można zdekodować rozszerzenia alternatywnej nazwy podmiotu lub nazwy podmiotu.
Uwagi
Ta metoda jest neutralną implementacją neutralnej platformy logiki dopasowywania hosta IETF RFC 6125. Klasa SslStream używa modułu sprawdzania poprawności nazwy hosta z systemu operacyjnego, co może spowodować różne wartości z tej implementacji.
Logiczny przepływ tej metody to:
- Jeśli nazwa hosta analizuje się jako IPAddress element, to jest wykonywane dopasowywanie adresów IP. W przeciwnym razie jest wykonywane dopasowywanie nazwy DNS.
- W przypadku dopasowania adresów IP wartość musi być dokładnie zgodna z wartością
iPAddress
we wpisie rozszerzenia Nazwa alternatywna podmiotu. - W przypadku dopasowania nazwy DNS wartość musi być dokładnie zgodna z wartością
dNSName
w wpisie rozszerzenia Alternatywna nazwa podmiotu lub dopasowanie symbolu wieloznakowego względem tego samego. - W przypadku dopasowania symboli wieloznacznych symbol wieloznaczny musi być pierwszym znakiem w wpisie
dNSName
, drugi znak musi być kropką (.), a wpis musi mieć długość większą niż dwie.
Symbol wieloznaczny będzie pasowaćhostname
tylko do pierwszej kropki (.), pozostałe znaki muszą być dokładnym dopasowaniem. - Jeśli nie ma rozszerzenia alternatywnej nazwy podmiotu lub rozszerzenie nie ma żadnych wpisów odpowiedniego typu, dopasowanie nazwy pospolitej jest używane jako rezerwowe.
- W przypadku dopasowania nazwy pospolitej, jeśli nazwa podmiotu zawiera jedną nazwę pospolitą, a ten atrybut nie jest zdefiniowany jako część wielowartościowej względnej nazwy wyróżniającej, nazwa hosta jest zgodna z wartością atrybutu Nazwa pospolita.
Pamiętaj, że symbole wieloznaczne nie są używane w dopasowywaniu nazwy pospolitej.
Ta implementacja uwzględnia SRV-ID
wartości lub URI-ID
wartości jako poza zakresem i nie będzie używać ich obecności jako przyczyny, aby zatrzymać powrót od DNS-ID
dopasowania do elementu CN-ID
.
Ta metoda nie konwertuje nazw hostów innych niż ASCII na reprezentację IDNA. W przypadku domen Unicode obiekt wywołujący musi używać IdnMapping lub równoważnego mapera IDNA.
Dopasowania "dokładne" wykonywane przez tę procedurę to OrdinalIgnoreCase, ponieważ nazwy domen nie są uwzględniane w wielkości liter.
Ta metoda nie określa, czy nazwa hosta jest autoryzowana przez zaufany urząd. Nie można podjąć decyzji o zaufaniu bez dodatkowego sprawdzania zaufania za pośrednictwem metody X509Chain.
Ta metoda nie sprawdza, czy certyfikat ma id-kp-serverAuth
rozszerzone użycie klucza (1.3.6.1.5.5.7.3.1).