X509Certificate2.MatchesHostname(String, Boolean, Boolean) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 à lahostname
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).