Partilhar via


NegotiateStream.BeginAuthenticateAsClient Método

Definição

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

Sobrecargas

BeginAuthenticateAsClient(AsyncCallback, Object)

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. Esse método não bloqueia.

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais especificadas. Esse método não bloqueia.

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

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais e a associação de canal especificadas. Esse método não bloqueia.

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

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais e as opções de autenticação especificadas. Esse método não bloqueia.

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

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa a credencial especificada, as opções de autenticação e a associação de canal. Esse método não bloqueia.

Comentários

As sobrecargas desse método não bloqueiam enquanto a autenticação está em andamento. Para bloquear enquanto aguarda a conclusão da autenticação, use um dos AuthenticateAsClient métodos.

BeginAuthenticateAsClient(AsyncCallback, Object)

Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. Esse método não bloqueia.

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

Um representante AsyncCallback que faz referência ao método a ser invocado quando a autenticação é concluída.

asyncState
Object

Um objeto definido pelo usuário que contém informações sobre a operação. Esse objeto é passado para o representante asyncCallback quando a operação é concluída.

Retornos

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

Exceções

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

Este objeto foi fechado.

A autenticação já ocorreu.

- ou -

Este fluxo foi usado anteriormente para tentar realizar autenticação como o servidor. Você não pode usar o fluxo para tentar novamente a autenticação como cliente.

Exemplos

O exemplo a seguir demonstra como chamar esse 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( 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)

Comentários

A autenticação usa o do DefaultCredentialscliente. Nenhum SPN (Nome da Entidade de Serviço) é especificado para o servidor. O nível de representação é Identificatione o nível de segurança é EncryptAndSign. A NegotiateStream classe construirá o SPN usado para autenticação mútua.

Esse método é assíncrono e não bloqueia enquanto a operação é concluída. Para bloquear até que a operação seja concluída, use uma das sobrecargas de AuthenticateAsClient método.

A operação de autenticação assíncrona deve ser concluída chamando o EndAuthenticateAsClient método . Normalmente, o método é invocado pelo asyncCallback delegado. Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona

Se a autenticação falhar, você receberá um AuthenticationException ou um InvalidCredentialException. Nesse caso, você pode repetir a autenticação com uma credencial diferente.

Aplica-se a

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais especificadas. Esse 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);
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 SPN (nome da entidade de serviço) que identifica exclusivamente o servidor a autenticar.

asyncCallback
AsyncCallback

Um representante AsyncCallback que faz referência ao método a ser invocado quando a autenticação é concluída.

asyncState
Object

Um objeto definido pelo usuário que contém informações sobre a operação de gravação. Esse objeto é passado para o representante asyncCallback quando a operação é concluída.

Retornos

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

Exceções

credential é null.

- ou -

targetName é null.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

Este objeto foi fechado.

A autenticação já ocorreu.

- ou -

Este fluxo foi usado anteriormente para tentar realizar autenticação como o servidor. Você não pode usar o fluxo para tentar novamente a autenticação como cliente.

Comentários

Esse método é assíncrono e não bloqueia enquanto a operação é concluída. Para bloquear até que a operação seja concluída, use uma das sobrecargas de AuthenticateAsClient método.

A operação de autenticação assíncrona deve ser concluída chamando o EndAuthenticateAsClient método . Normalmente, o método é invocado pelo asyncCallback delegado. Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona

Se a autenticação falhar, você receberá um AuthenticationException ou um InvalidCredentialException. Nesse caso, você pode repetir a autenticação com uma credencial diferente.

Aplica-se a

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

Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais e a associação de canal especificadas. Esse 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);
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 estendida.

targetName
String

O SPN (nome da entidade de serviço) que identifica exclusivamente o servidor a autenticar.

asyncCallback
AsyncCallback

Um representante AsyncCallback que faz referência ao método a ser invocado quando a autenticação é concluída.

asyncState
Object

Um objeto definido pelo usuário que contém informações sobre a operação de gravação. Esse objeto é passado para o representante asyncCallback quando a operação é concluída.

Retornos

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

Exceções

credential é null.

- ou -

targetName é null.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação já ocorreu.

- ou -

Este fluxo foi usado anteriormente para tentar realizar autenticação como o servidor. Você não pode usar o fluxo para tentar novamente a autenticação como cliente.

Este objeto foi fechado.

Comentários

Esse método é assíncrono e não bloqueia enquanto a operação é concluída. Para bloquear até que a operação seja concluída, use uma das sobrecargas de AuthenticateAsClient método.

A operação de autenticação assíncrona deve ser concluída chamando o EndAuthenticateAsClient método . Normalmente, o método é invocado pelo asyncCallback delegado. Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona

Se a autenticação falhar, você receberá um AuthenticationException ou um InvalidCredentialException. Nesse caso, você pode repetir a autenticação com uma credencial diferente.

Confira também

Aplica-se a

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

Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa as credenciais e as opções de autenticação especificadas. Esse 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);
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 SPN (nome da entidade de serviço) que identifica exclusivamente o servidor a autenticar.

requiredProtectionLevel
ProtectionLevel

Um dos valores de ProtectionLevel, que indica os serviços de segurança para o fluxo.

allowedImpersonationLevel
TokenImpersonationLevel

Um dos valores de TokenImpersonationLevel, que indica como o servidor pode usar as credenciais do cliente para acessar recursos.

asyncCallback
AsyncCallback

Um representante AsyncCallback que faz referência ao método a ser invocado quando a autenticação é concluída.

asyncState
Object

Um objeto definido pelo usuário que contém informações sobre a operação de gravação. Esse objeto é passado para o representante asyncCallback quando a operação é concluída.

Retornos

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

Exceções

credential é null.

- ou -

targetName é null.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

Este objeto foi fechado.

A autenticação já ocorreu.

- ou -

Este fluxo foi usado anteriormente para tentar realizar autenticação como o servidor. Você não pode usar o fluxo para tentar novamente a autenticação como cliente.

Comentários

Use o requiredProtectionLevel parâmetro para solicitar serviços de segurança para dados transmitidos usando o fluxo autenticado. Por exemplo, para ter os dados criptografados e assinados, especifique o EncryptAndSign valor. A autenticação bem-sucedida não garante que o solicitado ProtectionLevel tenha sido concedido. Você deve marcar as IsEncrypted propriedades e IsSigned para determinar quais serviços de segurança são usados pelo NegotiateStream.

Esse método é assíncrono e não bloqueia enquanto a operação é concluída. Para bloquear até que a operação seja concluída, use uma das sobrecargas de AuthenticateAsClient método.

A operação de autenticação assíncrona deve ser concluída chamando o EndAuthenticateAsClient método . Normalmente, o método é invocado pelo asyncCallback delegado. Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona

Se a autenticação falhar, você receberá um AuthenticationException ou um InvalidCredentialException. Nesse caso, você pode repetir a autenticação com uma credencial diferente.

Aplica-se a

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

Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs
Origem:
NegotiateStream.cs

Chamado por clientes para iniciar uma operação assíncrona para autenticar o cliente e, opcionalmente, o servidor em uma conexão cliente-servidor. O processo de autenticação usa a credencial especificada, as opções de autenticação e a associação de canal. Esse 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);
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 estendida.

targetName
String

O SPN (nome da entidade de serviço) que identifica exclusivamente o servidor a autenticar.

requiredProtectionLevel
ProtectionLevel

Um dos valores de ProtectionLevel, que indica os serviços de segurança para o fluxo.

allowedImpersonationLevel
TokenImpersonationLevel

Um dos valores de TokenImpersonationLevel, que indica como o servidor pode usar as credenciais do cliente para acessar recursos.

asyncCallback
AsyncCallback

Um representante AsyncCallback que faz referência ao método a ser invocado quando a autenticação é concluída.

asyncState
Object

Um objeto definido pelo usuário que contém informações sobre a operação de gravação. Esse objeto é passado para o representante asyncCallback quando a operação é concluída.

Retornos

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

Exceções

credential é null.

- ou -

targetName é null.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação falhou. Você pode usar esse objeto para tentar realizar a autenticação novamente.

A autenticação já ocorreu.

- ou -

Este fluxo foi usado anteriormente para tentar realizar autenticação como o servidor. Você não pode usar o fluxo para tentar novamente a autenticação como cliente.

Este objeto foi fechado.

Comentários

Use o requiredProtectionLevel parâmetro para solicitar serviços de segurança para dados transmitidos usando o fluxo autenticado. Por exemplo, para ter os dados criptografados e assinados, especifique o EncryptAndSign valor. A autenticação bem-sucedida não garante que o solicitado ProtectionLevel tenha sido concedido. Você deve marcar as IsEncrypted propriedades e IsSigned para determinar quais serviços de segurança são usados pelo NegotiateStream.

Esse método é assíncrono e não bloqueia enquanto a operação é concluída. Para bloquear até que a operação seja concluída, use uma das sobrecargas de AuthenticateAsClient método.

A operação de autenticação assíncrona deve ser concluída chamando o EndAuthenticateAsClient método . Normalmente, o método é invocado pelo asyncCallback delegado. Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona

Se a autenticação falhar, você receberá um AuthenticationException ou um InvalidCredentialException. Nesse caso, você pode repetir a autenticação com uma credencial diferente.

Confira também

Aplica-se a