Share via


X509Certificate2.MatchesHostname(String, Boolean, Boolean) Méthode

Définition

Vérifie si le certificat correspond au nom d’hôte fourni.

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

Paramètres

hostname
String

Nom d’hôte à mettre en correspondance.

allowWildcards
Boolean

true pour autoriser la correspondance de caractères génériques pour dNSName les valeurs de l’extension Subject Alternative Name ; sinon, false.

allowCommonName
Boolean

true pour autoriser la correspondance par rapport à la valeur Nom commun de l’objet ; sinon, false.

Retours

true si le certificat correspond au nom d’hôte demandé ; Sinon false

Exceptions

Le hostname paramètre n’est pas un nom d’hôte DNS ou une adresse IP valide.

Le certificat contient plusieurs extensions de nom de l’objet.

-ou-

L’extension Subject Alternative Name ou Subject Name n’a pas pu être décodée.

Remarques

Cette méthode est une implémentation neutre de la plateforme de la logique de correspondance de l’hôte IETF RFC 6125. La classe SslStream utilise le validateur de nom d’hôte du système d’exploitation, ce qui peut entraîner des valeurs différentes de cette implémentation.

Le flux logique de cette méthode est le suivant :

  • Si le nom d’hôte est analysé comme un IPAddress , la correspondance IPAddress est effectuée ; sinon, la correspondance de nom DNS est effectuée.
  • Pour la correspondance IPAddress, la valeur doit correspondre exactement à une iPAddress valeur dans une entrée de l’extension Subject Alternative Name.
  • Pour la correspondance de nom DNS, la valeur doit correspondre exactement à une valeur dans une dNSName entrée de l’extension Autre nom d’objet ou à une correspondance générique par rapport à la même.
  • Pour la correspondance de caractères génériques, le caractère générique doit être le premier caractère de l’entrée dNSName , le deuxième caractère doit être un point (.), et l’entrée doit avoir une longueur supérieure à deux.
    Le caractère générique correspond uniquement à la hostname valeur jusqu’au premier point (.), les caractères restants doivent correspondre exactement.
  • S’il n’existe aucune extension Subject Alternative Name ou si l’extension n’a pas d’entrées du type approprié, la correspondance de nom commun est utilisée comme solution de secours.
  • Pour la correspondance de nom commun, si le nom d’objet contient un seul nom commun et que cet attribut n’est pas défini dans le cadre d’un nom unique relatif à valeurs multiples, le nom d’hôte est mis en correspondance avec la valeur de l’attribut Common Name.
    Notez que les caractères génériques ne sont pas utilisés dans la correspondance de noms communs.

Cette implémentation considère les SRV-ID valeurs ou URI-ID les valeurs comme étant hors de portée et n’utilisera pas leur présence comme raison d’empêcher le secours de DNS-ID correspondre à .CN-ID

Cette méthode ne convertit pas les noms d’hôte non ASCII en représentation IDNA. Pour les domaines Unicode, l’appelant doit utiliser IdnMapping ou un mappeur IDNA équivalent.

Les correspondances « exactes » effectuées par cette routine sont OrdinalIgnoreCase, car les noms de domaine ne respectent pas la casse.

Cette méthode ne détermine pas si le nom d’hôte est autorisé par une autorité approuvée. Une décision d’approbation ne peut pas être prise sans vérification supplémentaire de la confiance via X509Chain.

Cette méthode n’case activée pas que le certificat a une id-kp-serverAuth utilisation étendue des clés (1.3.6.1.5.5.7.3.1).

S’applique à