NegotiateStream.BeginAuthenticateAsClient Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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
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
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
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.