Sdílet prostřednictvím


NegotiateStream.BeginAuthenticateAsClient Metoda

Definice

Zahájí asynchronní operaci ověření na straně klienta připojení klient-server.

Přetížení

BeginAuthenticateAsClient(AsyncCallback, Object)

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Tato metoda neblokuje.

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje. Tato metoda neblokuje.

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

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje a vazbu kanálu. Tato metoda neblokuje.

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

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje a možnosti ověřování. Tato metoda neblokuje.

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

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje, možnosti ověřování a vazbu kanálu. Tato metoda neblokuje.

Poznámky

Přetížení této metody neblokují, když probíhá ověřování. Pokud chcete blokovat při čekání na dokončení ověřování, použijte jednu z těchto AuthenticateAsClient metod.

BeginAuthenticateAsClient(AsyncCallback, Object)

Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Tato metoda neblokuje.

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

Parametry

asyncCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení ověřování.

asyncState
Object

Uživatelem definovaný objekt obsahující informace o operaci. Tento objekt se po dokončení operace předá asyncCallback delegátu.

Návraty

Objekt IAsyncResult označující stav asynchronní operace.

Výjimky

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Tento objekt byl uzavřen.

Ověřování již proběhlo.

-nebo-

Tento stream se dříve používal k pokusu o ověření jako server. Datový proud nelze použít k opakování ověření jako klient.

Příklady

Následující příklad ukazuje volání této metody pro zahájení asynchronního ověřování klienta.

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

Poznámky

Při ověřování se používá klient .DefaultCredentials Pro server není zadán žádný hlavní název služby (SPN). Úroveň zosobnění je Identificationa úroveň zabezpečení je EncryptAndSign. Třída NegotiateStream vytvoří hlavní název služby (SPN) použitý pro vzájemné ověřování.

Tato metoda je asynchronní a během dokončení operace neblokuje. Pokud chcete blokovat, dokud se operace dokončit, použijte některé z AuthenticateAsClient přetížení metody.

Asynchronní operace ověřování musí být dokončena voláním EndAuthenticateAsClient metody. Obvykle je metoda vyvolána delegátem asyncCallback . Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.

Pokud se ověření nezdaří, obdržíte nebo AuthenticationExceptionInvalidCredentialException. V takovém případě můžete zkusit ověření zopakovat pomocí jiných přihlašovacích údajů.

Platí pro

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje. Tato metoda neblokuje.

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

Parametry

credential
NetworkCredential

Slouží NetworkCredential k vytvoření identity klienta.

targetName
String

Hlavní název služby (SPN), který jednoznačně identifikuje server, který se má ověřit.

asyncCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení ověřování.

asyncState
Object

Uživatelem definovaný objekt obsahující informace o operaci zápisu. Tento objekt se po dokončení operace předá asyncCallback delegátu.

Návraty

Objekt IAsyncResult označující stav asynchronní operace.

Výjimky

credential je null.

-nebo-

targetName je null.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Tento objekt byl uzavřen.

Ověřování již proběhlo.

-nebo-

Tento stream se dříve používal k pokusu o ověření jako server. Datový proud nelze použít k opakování ověření jako klient.

Poznámky

Tato metoda je asynchronní a během dokončení operace neblokuje. Pokud chcete blokovat, dokud se operace dokončit, použijte některé z AuthenticateAsClient přetížení metody.

Asynchronní operace ověřování musí být dokončena voláním EndAuthenticateAsClient metody. Obvykle je metoda vyvolána delegátem asyncCallback . Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.

Pokud se ověření nezdaří, obdržíte nebo AuthenticationExceptionInvalidCredentialException. V takovém případě můžete zkusit ověření zopakovat pomocí jiných přihlašovacích údajů.

Platí pro

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

Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje a vazbu kanálu. Tato metoda neblokuje.

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

Parametry

credential
NetworkCredential

Slouží NetworkCredential k vytvoření identity klienta.

binding
ChannelBinding

Používá ChannelBinding se pro rozšířenou ochranu.

targetName
String

Hlavní název služby (SPN), který jednoznačně identifikuje server, který se má ověřit.

asyncCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení ověřování.

asyncState
Object

Uživatelem definovaný objekt obsahující informace o operaci zápisu. Tento objekt se po dokončení operace předá asyncCallback delegátu.

Návraty

Objekt IAsyncResult označující stav asynchronní operace.

Výjimky

credential je null.

-nebo-

targetName je null.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověřování již proběhlo.

-nebo-

Tento stream se dříve používal k pokusu o ověření jako server. Datový proud nelze použít k opakování ověření jako klient.

Tento objekt byl uzavřen.

Poznámky

Tato metoda je asynchronní a během dokončení operace neblokuje. Pokud chcete blokovat, dokud se operace dokončit, použijte některé z AuthenticateAsClient přetížení metody.

Asynchronní operace ověřování musí být dokončena voláním EndAuthenticateAsClient metody. Obvykle je metoda vyvolána delegátem asyncCallback . Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.

Pokud se ověření nezdaří, obdržíte nebo AuthenticationExceptionInvalidCredentialException. V takovém případě můžete zkusit ověření zopakovat pomocí jiných přihlašovacích údajů.

Viz také

Platí pro

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

Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje a možnosti ověřování. Tato metoda neblokuje.

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

Parametry

credential
NetworkCredential

Slouží NetworkCredential k vytvoření identity klienta.

targetName
String

Hlavní název služby (SPN), který jednoznačně identifikuje server, který se má ověřit.

requiredProtectionLevel
ProtectionLevel

Jedna z ProtectionLevel hodnot označujících služby zabezpečení pro datový proud.

allowedImpersonationLevel
TokenImpersonationLevel

Jedna z TokenImpersonationLevel hodnot označujících, jak může server používat přihlašovací údaje klienta pro přístup k prostředkům.

asyncCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení ověřování.

asyncState
Object

Uživatelem definovaný objekt obsahující informace o operaci zápisu. Tento objekt se po dokončení operace předá asyncCallback delegátu.

Návraty

Objekt IAsyncResult označující stav asynchronní operace.

Výjimky

credential je null.

-nebo-

targetName je null.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Tento objekt byl uzavřen.

Ověřování již proběhlo.

-nebo-

Tento stream se dříve používal k pokusu o ověření jako server. Datový proud nelze použít k opakování ověření jako klient.

Poznámky

Pomocí parametru requiredProtectionLevel můžete požadovat služby zabezpečení pro data přenášená pomocí ověřeného datového proudu. Pokud chcete mít například data zašifrovaná a podepsaná, zadejte EncryptAndSign hodnotu. Úspěšné ověření nezaručuje, že požadovanému ProtectionLevel ověření bylo uděleno. Pokud chcete zjistit, které služby zabezpečení používá NegotiateStreamnástroj , musíte zkontrolovat IsEncrypted vlastnosti a IsSigned .

Tato metoda je asynchronní a během dokončení operace neblokuje. Pokud chcete blokovat, dokud se operace dokončit, použijte některé z AuthenticateAsClient přetížení metody.

Asynchronní operace ověřování musí být dokončena voláním EndAuthenticateAsClient metody. Obvykle je metoda vyvolána delegátem asyncCallback . Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.

Pokud se ověření nezdaří, obdržíte nebo AuthenticationExceptionInvalidCredentialException. V takovém případě můžete zkusit ověření zopakovat pomocí jiných přihlašovacích údajů.

Platí pro

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

Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs
Zdroj:
NegotiateStream.cs

Volali klienti k zahájení asynchronní operace ověření klienta a volitelně serveru v připojení klient-server. Proces ověřování používá zadané přihlašovací údaje, možnosti ověřování a vazbu kanálu. Tato metoda neblokuje.

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

Parametry

credential
NetworkCredential

Slouží NetworkCredential k vytvoření identity klienta.

binding
ChannelBinding

Používá ChannelBinding se pro rozšířenou ochranu.

targetName
String

Hlavní název služby (SPN), který jednoznačně identifikuje server, který se má ověřit.

requiredProtectionLevel
ProtectionLevel

Jedna z ProtectionLevel hodnot označujících služby zabezpečení pro datový proud.

allowedImpersonationLevel
TokenImpersonationLevel

Jedna z TokenImpersonationLevel hodnot označujících, jak může server používat přihlašovací údaje klienta pro přístup k prostředkům.

asyncCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení ověřování.

asyncState
Object

Uživatelem definovaný objekt obsahující informace o operaci zápisu. Tento objekt se po dokončení operace předá asyncCallback delegátu.

Návraty

Objekt IAsyncResult označující stav asynchronní operace.

Výjimky

credential je null.

-nebo-

targetName je null.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověření se nezdařilo. Tento objekt můžete použít k opakování ověřování.

Ověřování již proběhlo.

-nebo-

Tento stream se dříve používal k pokusu o ověření jako server. Datový proud nelze použít k opakování ověření jako klient.

Tento objekt byl uzavřen.

Poznámky

Pomocí parametru requiredProtectionLevel můžete požadovat služby zabezpečení pro data přenášená pomocí ověřeného datového proudu. Pokud chcete mít například data zašifrovaná a podepsaná, zadejte EncryptAndSign hodnotu. Úspěšné ověření nezaručuje, že požadovanému ProtectionLevel ověření bylo uděleno. Pokud chcete zjistit, které služby zabezpečení používá NegotiateStreamnástroj , musíte zkontrolovat IsEncrypted vlastnosti a IsSigned .

Tato metoda je asynchronní a během dokončení operace neblokuje. Pokud chcete blokovat, dokud se operace dokončit, použijte některé z AuthenticateAsClient přetížení metody.

Asynchronní operace ověřování musí být dokončena voláním EndAuthenticateAsClient metody. Obvykle je metoda vyvolána delegátem asyncCallback . Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.

Pokud se ověření nezdaří, obdržíte nebo AuthenticationExceptionInvalidCredentialException. V takovém případě můžete zkusit ověření zopakovat pomocí jiných přihlašovacích údajů.

Viz také

Platí pro