Udostępnij za pośrednictwem


X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metoda

Definicja

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).

Dotyczy