NegotiateStream.BeginAuthenticateAsClient Método

Definición

Comienza una operación asincrónica para autenticar el cliente de una conexión cliente-servidor.

Sobrecargas

BeginAuthenticateAsClient(AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. Este método no se bloquea.

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales especificadas. Este método no se bloquea.

BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales y el enlace de canal especificados. Este método no se bloquea.

BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales y las opciones de autenticación especificadas. Este método no se bloquea.

BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales, las opciones de autenticación y el enlace de canal especificados. Este método no se bloquea.

Comentarios

Las sobrecargas de este método no se bloquean mientras la autenticación está en curso. Para bloquear mientras espera a que se complete la autenticación, use uno de los AuthenticateAsClient métodos .

BeginAuthenticateAsClient(AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. Este método no se bloquea.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (AsyncCallback? asyncCallback, object? asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (AsyncCallback asyncCallback, object asyncState);
abstract member BeginAuthenticateAsClient : AsyncCallback * obj -> IAsyncResult
override this.BeginAuthenticateAsClient : AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginAuthenticateAsClient (asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parámetros

asyncCallback
AsyncCallback

Delegado de AsyncCallback que hace referencia al método que se invocará cuando la autenticación se complete.

asyncState
Object

Un objeto definido por el usuario que contiene información sobre la operación. Este objeto se pasa al delegado de asyncCallback cuando la operación ha terminado.

Devoluciones

IAsyncResult

Objeto IAsyncResult que indica el estado de la operación asincrónica.

Excepciones

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Este objeto se ha cerrado.

Ya se ha producido la autenticación.

o bien

Esta secuencia se ha utilizado previamente para intentar la autenticación como servidor. No puede utilizar la secuencia para reintentar la autenticación como cliente.

Ejemplos

En el ejemplo siguiente se muestra cómo llamar a este método para iniciar una autenticación asincrónica para el cliente.

// Establish the remote endpoint for the socket.
// For this example, use the local machine.
IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() );
IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ];

// Client and server use port 11000. 
IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 );

// Create a TCP/IP socket.
client = gcnew TcpClient;

// Connect the socket to the remote endpoint.
client->Connect( remoteEP );
Console::WriteLine( L"Client connected to {0}.", remoteEP );

// Ensure the client does not close when there is 
// still data to be sent to the server.
client->LingerState = (gcnew LingerOption( true,0 ));

// Request authentication.
NetworkStream^ clientStream = client->GetStream();
NegotiateStream^ authStream = gcnew NegotiateStream( clientStream,false );

// Pass the NegotiateStream as the AsyncState object 
// so that it is available to the callback delegate.
IAsyncResult^ ar = authStream->BeginAuthenticateAsClient( gcnew AsyncCallback( EndAuthenticateCallback ), authStream );

// Establish the remote endpoint for the socket.
// For this example, use the local machine.
IPHostEntry ipHostInfo = Dns.GetHostEntry("localhost");
IPAddress ipAddress = ipHostInfo.AddressList[0];
// Client and server use port 11000.
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000);
// Create a TCP/IP socket.
client = new TcpClient();
// Connect the socket to the remote endpoint.
client.Connect(remoteEP);
Console.WriteLine("Client connected to {0}.", remoteEP.ToString());
// Ensure the client does not close when there is
// still data to be sent to the server.
client.LingerState = new LingerOption(true, 0);
// Request authentication.
NetworkStream clientStream = client.GetStream();
NegotiateStream authStream = new NegotiateStream(clientStream, false);
// Pass the NegotiateStream as the AsyncState object
// so that it is available to the callback delegate.
Task authenticateTask = authStream
    .AuthenticateAsClientAsync()
    .ContinueWith(task =>
    {
        Console.WriteLine("Client ending authentication...");
        Console.WriteLine("ImpersonationLevel: {0}", authStream.ImpersonationLevel);
    });

' Establish the remote endpoint for the socket.
' For this example, use the local machine.
Dim ipHostInfo = Dns.GetHostEntry("localhost")
Dim ipAddress = ipHostInfo.AddressList(0)

' Client and server use port 11000. 
Dim remoteEP As New IPEndPoint(ipAddress, 11000)

' Create a TCP/IP socket.
client = New TcpClient()

' Connect the socket to the remote endpoint.
client.Connect(remoteEP)
Console.WriteLine("Client connected to {0}.", remoteEP.ToString())

' Ensure the client does not close when there is 
' still data to be sent to the server.
client.LingerState = (New LingerOption(True, 0))

' Request authentication.
Dim clientStream = client.GetStream()
Dim authStream As New NegotiateStream(clientStream, False)

' Pass the NegotiateStream as the AsyncState object 
' so that it is available to the callback delegate.
Dim ar = authStream.BeginAuthenticateAsClient(
    New AsyncCallback(AddressOf EndAuthenticateCallback), authStream)

Comentarios

La autenticación usa la propiedad del DefaultCredentialscliente. No se especifica ningún nombre de entidad de seguridad de servicio (SPN) para el servidor. El nivel de suplantación es Identificationy el nivel de seguridad es EncryptAndSign. La NegotiateStream clase construirá el SPN usado para la autenticación mutua.

Este método es asincrónico y no se bloquea mientras se completa la operación. Para bloquear hasta que se complete la operación, use una de las sobrecargas del AuthenticateAsClient método .

La operación de autenticación asincrónica debe completarse llamando al EndAuthenticateAsClient método . Normalmente, el delegado invoca el asyncCallback método . Para obtener información detallada sobre cómo usar el modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Si se produce un error en la autenticación, recibirá o AuthenticationException .InvalidCredentialException En este caso, puede volver a intentar la autenticación con una credencial diferente.

Se aplica a

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales especificadas. Este método no se bloquea.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(System::Net::NetworkCredential ^ credential, System::String ^ targetName, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, string targetName, AsyncCallback? asyncCallback, object? asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, string targetName, AsyncCallback asyncCallback, object asyncState);
abstract member BeginAuthenticateAsClient : System.Net.NetworkCredential * string * AsyncCallback * obj -> IAsyncResult
override this.BeginAuthenticateAsClient : System.Net.NetworkCredential * string * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginAuthenticateAsClient (credential As NetworkCredential, targetName As String, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parámetros

credential
NetworkCredential

NetworkCredential que se utiliza para establecer la identidad del cliente.

targetName
String

Nombre de entidad de seguridad de servicio (SPN) que identifica de forma única el servidor que se va a autenticar.

asyncCallback
AsyncCallback

Delegado de AsyncCallback que hace referencia al método que se invocará cuando la autenticación se complete.

asyncState
Object

Objeto definido por el usuario que contiene información sobre la operación de escritura. Este objeto se pasa al delegado de asyncCallback cuando la operación ha terminado.

Devoluciones

IAsyncResult

Objeto IAsyncResult que indica el estado de la operación asincrónica.

Excepciones

credential es null.

O bien targetName es null.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Este objeto se ha cerrado.

Ya se ha producido la autenticación.

o bien

Esta secuencia se ha utilizado previamente para intentar la autenticación como servidor. No puede utilizar la secuencia para reintentar la autenticación como cliente.

Comentarios

Este método es asincrónico y no se bloquea mientras se completa la operación. Para bloquear hasta que se complete la operación, use una de las sobrecargas del AuthenticateAsClient método .

La operación de autenticación asincrónica debe completarse llamando al EndAuthenticateAsClient método . Normalmente, el delegado invoca el asyncCallback método . Para obtener información detallada sobre cómo usar el modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Si se produce un error en la autenticación, recibirá o AuthenticationException .InvalidCredentialException En este caso, puede volver a intentar la autenticación con una credencial diferente.

Se aplica a

BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales y el enlace de canal especificados. Este método no se bloquea.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(System::Net::NetworkCredential ^ credential, System::Security::Authentication::ExtendedProtection::ChannelBinding ^ binding, System::String ^ targetName, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding? binding, string targetName, AsyncCallback? asyncCallback, object? asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, AsyncCallback asyncCallback, object asyncState);
abstract member BeginAuthenticateAsClient : System.Net.NetworkCredential * System.Security.Authentication.ExtendedProtection.ChannelBinding * string * AsyncCallback * obj -> IAsyncResult
override this.BeginAuthenticateAsClient : System.Net.NetworkCredential * System.Security.Authentication.ExtendedProtection.ChannelBinding * string * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginAuthenticateAsClient (credential As NetworkCredential, binding As ChannelBinding, targetName As String, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parámetros

credential
NetworkCredential

NetworkCredential que se utiliza para establecer la identidad del cliente.

binding
ChannelBinding

Objeto ChannelBinding que se usa para la protección extendida.

targetName
String

Nombre de entidad de seguridad de servicio (SPN) que identifica de forma única el servidor que se va a autenticar.

asyncCallback
AsyncCallback

Delegado de AsyncCallback que hace referencia al método que se invocará cuando la autenticación se complete.

asyncState
Object

Objeto definido por el usuario que contiene información sobre la operación de escritura. Este objeto se pasa al delegado de asyncCallback cuando la operación ha terminado.

Devoluciones

IAsyncResult

Objeto IAsyncResult que indica el estado de la operación asincrónica.

Excepciones

credential es null.

O bien targetName es null.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Ya se ha producido la autenticación.

o bien

Esta secuencia se ha utilizado previamente para intentar la autenticación como servidor. No puede utilizar la secuencia para reintentar la autenticación como cliente.

Este objeto se ha cerrado.

Comentarios

Este método es asincrónico y no se bloquea mientras se completa la operación. Para bloquear hasta que finalice la operación, use una de las sobrecargas del AuthenticateAsClient método.

La operación de autenticación asincrónica debe completarse llamando al EndAuthenticateAsClient método . Normalmente, el delegado invoca el asyncCallback método . Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Si se produce un error en la autenticación, recibirá o AuthenticationException .InvalidCredentialException En este caso, puede volver a intentar la autenticación con una credencial diferente.

Consulte también

Se aplica a

BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales y las opciones de autenticación especificadas. Este método no se bloquea.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(System::Net::NetworkCredential ^ credential, System::String ^ targetName, System::Net::Security::ProtectionLevel requiredProtectionLevel, System::Security::Principal::TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback? asyncCallback, object? asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, object asyncState);
abstract member BeginAuthenticateAsClient : System.Net.NetworkCredential * string * System.Net.Security.ProtectionLevel * System.Security.Principal.TokenImpersonationLevel * AsyncCallback * obj -> IAsyncResult
override this.BeginAuthenticateAsClient : System.Net.NetworkCredential * string * System.Net.Security.ProtectionLevel * System.Security.Principal.TokenImpersonationLevel * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginAuthenticateAsClient (credential As NetworkCredential, targetName As String, requiredProtectionLevel As ProtectionLevel, allowedImpersonationLevel As TokenImpersonationLevel, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parámetros

credential
NetworkCredential

NetworkCredential que se utiliza para establecer la identidad del cliente.

targetName
String

Nombre de entidad de seguridad de servicio (SPN) que identifica de forma única el servidor que se va a autenticar.

requiredProtectionLevel
ProtectionLevel

Uno de los valores de ProtectionLevel, que indica los servicios de seguridad de la secuencia.

allowedImpersonationLevel
TokenImpersonationLevel

Uno de los valores de TokenImpersonationLevel, que indica cómo puede utilizar el servidor las credenciales del cliente para tener acceso a los recursos.

asyncCallback
AsyncCallback

Delegado de AsyncCallback que hace referencia al método que se invocará cuando la autenticación se complete.

asyncState
Object

Objeto definido por el usuario que contiene información sobre la operación de escritura. Este objeto se pasa al delegado de asyncCallback cuando la operación ha terminado.

Devoluciones

IAsyncResult

Objeto IAsyncResult que indica el estado de la operación asincrónica.

Excepciones

credential es null.

O bien targetName es null.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Este objeto se ha cerrado.

Ya se ha producido la autenticación.

o bien

Esta secuencia se ha utilizado previamente para intentar la autenticación como servidor. No puede utilizar la secuencia para reintentar la autenticación como cliente.

Comentarios

Use el requiredProtectionLevel parámetro para solicitar servicios de seguridad para los datos transmitidos mediante la secuencia autenticada. Por ejemplo, para que los datos se cifren y firmen, especifique el EncryptAndSign valor . La autenticación correcta no garantiza que se haya concedido la solicitud ProtectionLevel . Debe comprobar las IsEncrypted propiedades y IsSigned para determinar qué servicios de seguridad usan .NegotiateStream

Este método es asincrónico y no se bloquea mientras se completa la operación. Para bloquear hasta que finalice la operación, use una de las sobrecargas del AuthenticateAsClient método.

La operación de autenticación asincrónica debe completarse llamando al EndAuthenticateAsClient método . Normalmente, el delegado invoca el asyncCallback método . Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Si se produce un error en la autenticación, recibirá o AuthenticationException .InvalidCredentialException En este caso, puede volver a intentar la autenticación con una credencial diferente.

Se aplica a

BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)

Lo llaman los clientes para comenzar una operación asincrónica para autenticar el cliente, y opcionalmente el servidor, en una conexión cliente-servidor. El proceso de autenticación utiliza las credenciales, las opciones de autenticación y el enlace de canal especificados. Este método no se bloquea.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(System::Net::NetworkCredential ^ credential, System::Security::Authentication::ExtendedProtection::ChannelBinding ^ binding, System::String ^ targetName, System::Net::Security::ProtectionLevel requiredProtectionLevel, System::Security::Principal::TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding? binding, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback? asyncCallback, object? asyncState);
public virtual IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, System.Net.Security.ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, object asyncState);
abstract member BeginAuthenticateAsClient : System.Net.NetworkCredential * System.Security.Authentication.ExtendedProtection.ChannelBinding * string * System.Net.Security.ProtectionLevel * System.Security.Principal.TokenImpersonationLevel * AsyncCallback * obj -> IAsyncResult
override this.BeginAuthenticateAsClient : System.Net.NetworkCredential * System.Security.Authentication.ExtendedProtection.ChannelBinding * string * System.Net.Security.ProtectionLevel * System.Security.Principal.TokenImpersonationLevel * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginAuthenticateAsClient (credential As NetworkCredential, binding As ChannelBinding, targetName As String, requiredProtectionLevel As ProtectionLevel, allowedImpersonationLevel As TokenImpersonationLevel, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parámetros

credential
NetworkCredential

NetworkCredential que se utiliza para establecer la identidad del cliente.

binding
ChannelBinding

Objeto ChannelBinding que se usa para la protección extendida.

targetName
String

Nombre de entidad de seguridad de servicio (SPN) que identifica de forma única el servidor que se va a autenticar.

requiredProtectionLevel
ProtectionLevel

Uno de los valores de ProtectionLevel, que indica los servicios de seguridad de la secuencia.

allowedImpersonationLevel
TokenImpersonationLevel

Uno de los valores de TokenImpersonationLevel, que indica cómo puede utilizar el servidor las credenciales del cliente para tener acceso a los recursos.

asyncCallback
AsyncCallback

Delegado de AsyncCallback que hace referencia al método que se invocará cuando la autenticación se complete.

asyncState
Object

Objeto definido por el usuario que contiene información sobre la operación de escritura. Este objeto se pasa al delegado de asyncCallback cuando la operación ha terminado.

Devoluciones

IAsyncResult

Objeto IAsyncResult que indica el estado de la operación asincrónica.

Excepciones

credential es null.

O bien targetName es null.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Se produjo un error en la autenticación. Puede utilizar este objeto para reintentar la autenticación.

Ya se ha producido la autenticación.

o bien

Esta secuencia se ha utilizado previamente para intentar la autenticación como servidor. No puede utilizar la secuencia para reintentar la autenticación como cliente.

Este objeto se ha cerrado.

Comentarios

Use el requiredProtectionLevel parámetro para solicitar servicios de seguridad para los datos transmitidos mediante la secuencia autenticada. Por ejemplo, para que los datos se cifren y firmen, especifique el EncryptAndSign valor . La autenticación correcta no garantiza que se haya concedido la solicitud ProtectionLevel . Debe comprobar las IsEncrypted propiedades y IsSigned para determinar qué servicios de seguridad usan .NegotiateStream

Este método es asincrónico y no se bloquea mientras se completa la operación. Para bloquear hasta que finalice la operación, use una de las sobrecargas del AuthenticateAsClient método.

La operación de autenticación asincrónica debe completarse llamando al EndAuthenticateAsClient método . Normalmente, el delegado invoca el asyncCallback método . Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Si se produce un error en la autenticación, recibirá o AuthenticationException .InvalidCredentialException En este caso, puede volver a intentar la autenticación con una credencial diferente.

Consulte también

Se aplica a