Compartir a través de


Autenticación de Internet

Las System.Net clases admiten una variedad de mecanismos de autenticación de cliente, incluidos los métodos de autenticación de Internet estándar básicos, resumen, negociación, NTLM y autenticación Kerberos, así como métodos personalizados que puede crear.

Las credenciales de autenticación se almacenan en las NetworkCredential clases y CredentialCache , que implementan la ICredentials interfaz . Cuando se consulta una de estas clases para obtener credenciales, devuelve una instancia de la NetworkCredential clase . La clase administra el AuthenticationManager proceso de autenticación y el proceso de autenticación real lo realiza una clase de módulo de autenticación que implementa la IAuthenticationModule interfaz . Debe registrar un módulo de autenticación personalizado con AuthenticationManager antes de poder usarlo; los módulos para los métodos de autenticación básico, digest, negotiate, NTLM y Kerberos se registran por defecto.

NetworkCredential almacena un conjunto de credenciales asociadas a un único recurso de Internet identificado por un URI y los devuelve en respuesta a cualquier llamada al GetCredential método . Normalmente, la clase NetworkCredential es utilizada por aplicaciones que acceden a un número limitado de recursos de Internet o por aplicaciones que utilizan el mismo conjunto de credenciales en todos los casos.

La CredentialCache clase almacena una colección de credenciales para varios recursos web. Cuando se llama al GetCredential método , CredentialCache devuelve el conjunto adecuado de credenciales, determinado por el URI del recurso web y el esquema de autenticación solicitado. Las aplicaciones que usan una variedad de recursos de Internet con diferentes esquemas de autenticación se benefician del uso de la CredentialCache clase , ya que almacena todas las credenciales y las proporciona según se solicite.

Cuando un recurso de Internet solicita autenticación, el WebRequest.GetResponse método envía WebRequest al objeto AuthenticationManager junto con la solicitud de credenciales. A continuación, la solicitud se autentica según el siguiente proceso:

  1. AuthenticationManager Llama al método Authenticate en cada uno de los módulos de autenticación registrados en el orden en que se registraron. AuthenticationManager usa el primer módulo que no vuelve null para llevar a cabo el proceso de autenticación. Los detalles del proceso varían en función del tipo de módulo de autenticación implicado.

  2. Una vez completado el proceso de autenticación, el módulo de autenticación devuelve un Authorization al WebRequest que contiene la información necesaria para acceder al recurso de Internet.

Algunos esquemas de autenticación pueden autenticar a un usuario sin realizar primero una solicitud de un recurso. Una aplicación puede ahorrar tiempo mediante la autenticación previa del usuario con el recurso, lo que elimina al menos un recorrido de ida y vuelta al servidor. O bien, puede realizar la autenticación durante el inicio del programa para poder responder más adelante al usuario. Los esquemas de autenticación que pueden usar la autenticación previa establecen la PreAuthenticate propiedad en true.

Consulte también