X509Certificate2.MatchesHostname(String, Boolean, Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comprueba si el certificado coincide con el nombre de host proporcionado.
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
Parámetros
- hostname
- String
Nombre de host con el que se va a buscar coincidencia.
- allowWildcards
- Boolean
true
es para permitir la coincidencia de caracteres comodín para dNSName
los valores de la extensión Nombre alternativo del firmante; en caso contrario, false
es .
- allowCommonName
- Boolean
true
para permitir la coincidencia con el valor de Nombre común del firmante; de lo contrario, false
.
Devoluciones
true
si el certificado es una coincidencia para el nombre de host solicitado; Lo contrario false
Excepciones
El hostname
parámetro no es un nombre de host DNS o una dirección IP válidos.
El certificado contiene varias extensiones de nombre alternativo del firmante.
O bien
No se pudo descodificar la extensión nombre alternativo del firmante ni el nombre del firmante.
Comentarios
Este método es una implementación neutra de la plataforma de la lógica de coincidencia de host RFC 6125 de IETF. La clase SslStream usa el validador de nombre de host del sistema operativo, lo que puede dar lugar a valores diferentes de esta implementación.
El flujo lógico de este método es:
- Si el nombre de host analiza como , se realiza la IPAddress coincidencia de IPAddress; de lo contrario, se realiza la coincidencia de nombres DNS.
- Para la coincidencia de IPAddress, el valor debe ser una coincidencia exacta con un
iPAddress
valor en una entrada de la extensión Nombre alternativo del firmante. - Para la coincidencia de nombres DNS, el valor debe ser una coincidencia exacta con un
dNSName
valor en una entrada de la extensión Nombre alternativo del firmante o una coincidencia de caracteres comodín con el mismo. - Para la coincidencia de caracteres comodín, el carácter comodín debe ser el primer carácter de la
dNSName
entrada, el segundo carácter debe ser un punto (.) y la entrada debe tener una longitud mayor que dos.
El carácter comodín solo coincidirá con elhostname
valor hasta el primer punto (.), los caracteres restantes deben ser una coincidencia exacta. - Si no hay ninguna extensión de nombre alternativo del firmante o la extensión no tiene ninguna entrada del tipo adecuado, la coincidencia de nombre común se usa como reserva.
- Para la coincidencia de nombre común, si el nombre del firmante contiene un único nombre común y ese atributo no se define como parte de un nombre distintivo relativo con varios valores, el nombre de host coincide con el valor del atributo Nombre común.
Tenga en cuenta que los caracteres comodín no se usan en la coincidencia de nombres comunes.
Esta implementación considera SRV-ID
valores o URI-ID
valores como fuera del ámbito y no usará su presencia como motivo para impedir que la reserva DNS-ID
coincida con .CN-ID
Este método no convierte nombres de host no ASCII en la representación idna. En el caso de los dominios Unicode, el autor de IdnMapping la llamada debe usar o un asignador IDNA equivalente.
Las coincidencias "exactas" realizadas por esta rutina son OrdinalIgnoreCase, ya que los nombres de dominio no distinguen mayúsculas de minúsculas.
Este método no determina si el nombre de host está autorizado por una autoridad de confianza. No se puede tomar una decisión de confianza sin comprobar además la confianza a través de X509Chain.
Este método no comprueba que el certificado tenga un id-kp-serverAuth
uso extendido de clave extendida (1.3.6.1.5.5.7.3.1).