NegotiateStream.BeginAuthenticateAsClient Método

Definição

Inicia uma operação assíncrona para autenticar o lado cliente de uma ligação cliente-servidor.

Sobrecargas

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas, as opções de autenticação e a ligação de canal. Este método não bloqueia.

BeginAuthenticateAsClient(AsyncCallback, Object)

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. Este método não bloqueia.

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas. Este método não bloqueia.

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas e a ligação de canal. Este método não bloqueia.

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais e opções de autenticação especificadas. Este método não bloqueia.

Observações

As sobrecargas deste método não bloqueiam enquanto a autenticação está em curso. Para bloquear enquanto espera que a autenticação seja concluída, use um dos AuthenticateAsClient métodos.

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas, as opções de autenticação e a ligação de canal. Este método não bloqueia.

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);
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

O NetworkCredential que é usado para estabelecer a identidade do cliente.

binding
ChannelBinding

O ChannelBinding que é usado para proteção prolongada.

targetName
String

O Nome Principal do Serviço (SPN) que identifica de forma única o servidor a autenticar.

requiredProtectionLevel
ProtectionLevel

Um dos ProtectionLevel valores, indicando os serviços de segurança do fluxo.

allowedImpersonationLevel
TokenImpersonationLevel

Um dos TokenImpersonationLevel valores, indica como o servidor pode usar as credenciais do cliente para aceder a recursos.

asyncCallback
AsyncCallback

Um AsyncCallback delegado que faz referência ao método a invocar quando a autenticação estiver concluída.

asyncState
Object

Um objeto definido pelo utilizador contendo informação sobre a operação de escrita. Este objeto é passado para o asyncCallback delegado quando a operação termina.

Devoluções

Um objeto que IAsyncResult indica o estado da operação assíncrona.

Exceções

credential é null.

-ou-

targetName é null.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação já ocorreu.

-ou-

Este fluxo era usado anteriormente para tentar autenticação como servidor. Não podes usar o stream para tentar autenticação novamente como cliente.

Este objeto foi encerrado.

Observações

Use o requiredProtectionLevel parâmetro para solicitar serviços de segurança para os dados transmitidos através do fluxo autenticado. Por exemplo, para que os dados sejam encriptados e assinados, especifique o EncryptAndSign valor. A autenticação bem-sucedida não garante que o pedido ProtectionLevel tenha sido concedido. Deve verificar as IsEncrypted e IsSigned propriedades para determinar que serviços de segurança são utilizados pelo NegotiateStream.

Este método é assíncrono e não bloqueia enquanto a operação está concluída. Para bloquear até a operação terminar, use uma das AuthenticateAsClient sobrecargas de métodos.

A operação de autenticação assíncrona deve ser realizada chamando o EndAuthenticateAsClient método. Normalmente, o método é invocado pelo asyncCallback delegado. Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos

Se a autenticação falhar, recebe um AuthenticationException ou um InvalidCredentialException. Neste caso, pode tentar a autenticação novamente com uma credencial diferente.

Ver também

Aplica-se a

BeginAuthenticateAsClient(AsyncCallback, Object)

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. Este método não bloqueia.

public:
 virtual IAsyncResult ^ BeginAuthenticateAsClient(AsyncCallback ^ asyncCallback, System::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

Um AsyncCallback delegado que faz referência ao método a invocar quando a autenticação estiver concluída.

asyncState
Object

Um objeto definido pelo utilizador contendo informação sobre a operação. Este objeto é passado para o asyncCallback delegado quando a operação termina.

Devoluções

Um objeto que IAsyncResult indica o estado da operação assíncrona.

Exceções

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

Este objeto foi encerrado.

A autenticação já ocorreu.

-ou-

Este fluxo era usado anteriormente para tentar autenticação como servidor. Não podes usar o stream para tentar autenticação novamente como cliente.

Exemplos

O exemplo seguinte demonstra chamar este método para iniciar uma autenticação assíncrona para o cliente.

// 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)

Observações

A autenticação utiliza o DefaultCredentials. Não é especificado nenhum Nome Principal de Serviço (SPN) para o servidor. O nível de personificação é Identification, e o nível de segurança é EncryptAndSign. A NegotiateStream classe irá construir o SPN usado para autenticação mútua.

Este método é assíncrono e não bloqueia enquanto a operação está concluída. Para bloquear até a operação terminar, use uma das AuthenticateAsClient sobrecargas de métodos.

A operação de autenticação assíncrona deve ser realizada chamando o EndAuthenticateAsClient método. Normalmente, o método é invocado pelo asyncCallback delegado. Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos

Se a autenticação falhar, recebe um AuthenticationException ou um InvalidCredentialException. Neste caso, pode tentar a autenticação novamente com uma credencial diferente.

Aplica-se a

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas. Este método não bloqueia.

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);
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

O NetworkCredential que é usado para estabelecer a identidade do cliente.

targetName
String

O Nome Principal do Serviço (SPN) que identifica de forma única o servidor a autenticar.

asyncCallback
AsyncCallback

Um AsyncCallback delegado que faz referência ao método a invocar quando a autenticação estiver concluída.

asyncState
Object

Um objeto definido pelo utilizador contendo informação sobre a operação de escrita. Este objeto é passado para o asyncCallback delegado quando a operação termina.

Devoluções

Um objeto que IAsyncResult indica o estado da operação assíncrona.

Exceções

credential é null.

-ou-

targetName é null.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

Este objeto foi encerrado.

A autenticação já ocorreu.

-ou-

Este fluxo era usado anteriormente para tentar autenticação como servidor. Não podes usar o stream para tentar autenticação novamente como cliente.

Observações

Este método é assíncrono e não bloqueia enquanto a operação está concluída. Para bloquear até a operação terminar, use uma das AuthenticateAsClient sobrecargas de métodos.

A operação de autenticação assíncrona deve ser realizada chamando o EndAuthenticateAsClient método. Normalmente, o método é invocado pelo asyncCallback delegado. Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos

Se a autenticação falhar, recebe um AuthenticationException ou um InvalidCredentialException. Neste caso, pode tentar a autenticação novamente com uma credencial diferente.

Aplica-se a

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais especificadas e a ligação de canal. Este método não bloqueia.

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);
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

O NetworkCredential que é usado para estabelecer a identidade do cliente.

binding
ChannelBinding

O ChannelBinding que é usado para proteção prolongada.

targetName
String

O Nome Principal do Serviço (SPN) que identifica de forma única o servidor a autenticar.

asyncCallback
AsyncCallback

Um AsyncCallback delegado que faz referência ao método a invocar quando a autenticação estiver concluída.

asyncState
Object

Um objeto definido pelo utilizador contendo informação sobre a operação de escrita. Este objeto é passado para o asyncCallback delegado quando a operação termina.

Devoluções

Um objeto que IAsyncResult indica o estado da operação assíncrona.

Exceções

credential é null.

-ou-

targetName é null.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação já ocorreu.

-ou-

Este fluxo era usado anteriormente para tentar autenticação como servidor. Não podes usar o stream para tentar autenticação novamente como cliente.

Este objeto foi encerrado.

Observações

Este método é assíncrono e não bloqueia enquanto a operação está concluída. Para bloquear até a operação terminar, use uma das AuthenticateAsClient sobrecargas de métodos.

A operação de autenticação assíncrona deve ser realizada chamando o EndAuthenticateAsClient método. Normalmente, o método é invocado pelo asyncCallback delegado. Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos

Se a autenticação falhar, recebe um AuthenticationException ou um InvalidCredentialException. Neste caso, pode tentar a autenticação novamente com uma credencial diferente.

Ver também

Aplica-se a

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

Chamado pelos clientes para iniciar uma operação assíncrona de autenticação do cliente, e opcionalmente do servidor, numa ligação cliente-servidor. O processo de autenticação utiliza as credenciais e opções de autenticação especificadas. Este método não bloqueia.

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);
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

O NetworkCredential que é usado para estabelecer a identidade do cliente.

targetName
String

O Nome Principal do Serviço (SPN) que identifica de forma única o servidor a autenticar.

requiredProtectionLevel
ProtectionLevel

Um dos ProtectionLevel valores, indicando os serviços de segurança do fluxo.

allowedImpersonationLevel
TokenImpersonationLevel

Um dos TokenImpersonationLevel valores, indica como o servidor pode usar as credenciais do cliente para aceder a recursos.

asyncCallback
AsyncCallback

Um AsyncCallback delegado que faz referência ao método a invocar quando a autenticação estiver concluída.

asyncState
Object

Um objeto definido pelo utilizador contendo informação sobre a operação de escrita. Este objeto é passado para o asyncCallback delegado quando a operação termina.

Devoluções

Um objeto que IAsyncResult indica o estado da operação assíncrona.

Exceções

credential é null.

-ou-

targetName é null.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

A autenticação falhou. Pode usar este objeto para tentar novamente a autenticação.

Este objeto foi encerrado.

A autenticação já ocorreu.

-ou-

Este fluxo era usado anteriormente para tentar autenticação como servidor. Não podes usar o stream para tentar autenticação novamente como cliente.

Observações

Use o requiredProtectionLevel parâmetro para solicitar serviços de segurança para os dados transmitidos através do fluxo autenticado. Por exemplo, para que os dados sejam encriptados e assinados, especifique o EncryptAndSign valor. A autenticação bem-sucedida não garante que o pedido ProtectionLevel tenha sido concedido. Deve verificar as IsEncrypted e IsSigned propriedades para determinar que serviços de segurança são utilizados pelo NegotiateStream.

Este método é assíncrono e não bloqueia enquanto a operação está concluída. Para bloquear até a operação terminar, use uma das AuthenticateAsClient sobrecargas de métodos.

A operação de autenticação assíncrona deve ser realizada chamando o EndAuthenticateAsClient método. Normalmente, o método é invocado pelo asyncCallback delegado. Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos

Se a autenticação falhar, recebe um AuthenticationException ou um InvalidCredentialException. Neste caso, pode tentar a autenticação novamente com uma credencial diferente.

Aplica-se a