NegotiateStream.BeginAuthenticateAsClient Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
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
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
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.