X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Verifica se il certificato corrisponde al nome host specificato.
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
Parametri
- hostname
- String
Nome host da associare.
- allowWildcards
- Boolean
true
per consentire la corrispondenza con caratteri jolly per dNSName
i valori nell'estensione Nome alternativo soggetto; in caso contrario, false
.
- allowCommonName
- Boolean
true
per consentire la corrispondenza rispetto al valore nome comune soggetto; in caso contrario, false
.
Restituisce
true
se il certificato è una corrispondenza per il nome host richiesto; Altrimenti false
Eccezioni
Il hostname
parametro non è un nome host DNS valido o un indirizzo IP.
Il certificato contiene più estensioni nome alternativo soggetto.
-oppure-
Impossibile decodificare l'estensione Nome alternativo soggetto o Il nome soggetto.
Commenti
Questo metodo è un'implementazione neutrale della piattaforma della logica di corrispondenza host IETF RFC 6125. La classe SslStream usa il validator del nome host dal sistema operativo, che può comportare valori diversi da questa implementazione.
Il flusso logico di questo metodo è:
- Se il nome host analizza come IPAddress corrispondenza IPAddress viene eseguito. In caso contrario, viene eseguita la corrispondenza dei nomi DNS.
- Per la corrispondenza ipAddress, il valore deve essere una corrispondenza esatta rispetto a un
iPAddress
valore in una voce dell'estensione Nome alternativo soggetto. - Per la corrispondenza dei nomi DNS, il valore deve essere una corrispondenza esatta rispetto a un
dNSName
valore in una voce dell'estensione Nome alternativo soggetto o una corrispondenza con caratteri jolly rispetto alla stessa. - Per la corrispondenza con caratteri jolly, il carattere jolly deve essere il primo carattere nella
dNSName
voce, il secondo carattere deve essere un punto (.) e la voce deve avere una lunghezza maggiore di due.
Il carattere jolly corrisponde solo alhostname
primo periodo (.), i caratteri rimanenti devono corrispondere esattamente. - Se non esiste un'estensione Nome alternativo soggetto o l'estensione non dispone di voci del tipo appropriato, la corrispondenza nome comune viene usata come fallback.
- Per la corrispondenza nome comune, se il nome soggetto contiene un singolo nome comune e tale attributo non è definito come parte di un nome distinto relativo a più valori, il nome host viene corrispondente al valore dell'attributo Common Name.
Si noti che i caratteri jolly non vengono usati nella corrispondenza nome comune.
Questa implementazione considera SRV-ID
valori o URI-ID
valori non compresi nell'ambito e non userà la propria presenza come motivo per arrestare il fallback dalla DNS-ID
corrispondenza all'oggetto CN-ID
.
Questo metodo non converte nomi host non ASCII nella rappresentazione IDNA. Per i domini Unicode, il chiamante deve usare IdnMapping o un mapper IDNA equivalente.
Le corrispondenze "esatte" eseguite da questa routine sono OrdinalIgnoreCase, perché i nomi di dominio non sono distinzione tra maiuscole e minuscole.
Questo metodo non determina se il nome host è autorizzato da un'autorità attendibile. Non è possibile prendere una decisione di attendibilità senza controllare ulteriormente l'attendibilità tramite X509Chain.
Questo metodo non verifica che il certificato disponga di un id-kp-serverAuth
utilizzo esteso della chiave estesa (1.3.6.1.5.5.7.3.1).