NegotiateStream.BeginAuthenticateAsClient Метод

Определение

Начинает асинхронную операцию для проверки подлинности клиентской стороны соединения клиент-сервер.

Перегрузки

BeginAuthenticateAsClient(AsyncCallback, Object)

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Этот метод не блокируется.

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные. Этот метод не блокируется.

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

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные и привязку канала. Этот метод не блокируется.

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

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные сервера и параметры проверки подлинности. Этот метод не блокируется.

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

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные, параметры проверки подлинности и привязку канала. Этот метод не блокируется.

Комментарии

Перегрузки этого метода не блокируются во время проверки подлинности. Чтобы выполнить блокировку во время ожидания завершения проверки подлинности, используйте один из AuthenticateAsClient методов.

BeginAuthenticateAsClient(AsyncCallback, Object)

Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Этот метод не блокируется.

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

Параметры

asyncCallback
AsyncCallback

Делегат AsyncCallback , который ссылается на метод, вызываемый после выполнения проверки подлинности.

asyncState
Object

Пользовательский объект, содержащий сведения о данной операции. Этот объект передается делегату asyncCallback после завершения операции.

Возвращаемое значение

Объект IAsyncResult, указывающий состояние асинхронной операции.

Исключения

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Объект закрыт.

Проверка подлинности уже выполнена.

-или-

Этот поток уже использовался ранее при попытке проверки подлинности со стороны сервера. Этот поток нельзя использовать для повторной проверки подлинности со стороны клиента.

Примеры

В следующем примере показан вызов этого метода для запуска асинхронной проверки подлинности клиента.

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

Комментарии

При проверке подлинности используется клиент .DefaultCredentials Имя субъекта-службы (SPN) для сервера не указано. Уровень олицетворения — Identification, а уровень безопасности — EncryptAndSign. Класс NegotiateStream создаст имя субъекта-службы, используемое для взаимной проверки подлинности.

Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.

Асинхронную операцию проверки подлинности необходимо завершить путем вызова EndAuthenticateAsClient метода . Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.

Если проверка подлинности завершается сбоем AuthenticationException , вы получите или InvalidCredentialException. В этом случае можно повторить проверку подлинности с другими учетными данными.

Применяется к

BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object)

Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные. Этот метод не блокируется.

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

Параметры

credential
NetworkCredential

Учетные данные NetworkCredential, используемые для установления идентификации клиента.

targetName
String

Имя участника-службы (SPN), уникально определяющее сервер, подлинность которого проверяется.

asyncCallback
AsyncCallback

Делегат AsyncCallback , который ссылается на метод, вызываемый после выполнения проверки подлинности.

asyncState
Object

Пользовательский объект, содержащий сведения об операции записи. Этот объект передается делегату asyncCallback после завершения операции.

Возвращаемое значение

Объект IAsyncResult, указывающий состояние асинхронной операции.

Исключения

credential имеет значение null.

-или-

targetName имеет значение null.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Объект закрыт.

Проверка подлинности уже выполнена.

-или-

Этот поток уже использовался ранее при попытке проверки подлинности со стороны сервера. Этот поток нельзя использовать для повторной проверки подлинности со стороны клиента.

Комментарии

Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.

Асинхронную операцию проверки подлинности необходимо завершить путем вызова EndAuthenticateAsClient метода . Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.

Если проверка подлинности завершается сбоем AuthenticationException , вы получите или InvalidCredentialException. В этом случае можно повторить проверку подлинности с другими учетными данными.

Применяется к

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

Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные и привязку канала. Этот метод не блокируется.

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

Параметры

credential
NetworkCredential

Учетные данные NetworkCredential, используемые для установления идентификации клиента.

binding
ChannelBinding

Объект ChannelBinding, который используется для расширенной защиты.

targetName
String

Имя участника-службы (SPN), уникально определяющее сервер, подлинность которого проверяется.

asyncCallback
AsyncCallback

Делегат AsyncCallback , который ссылается на метод, вызываемый после выполнения проверки подлинности.

asyncState
Object

Пользовательский объект, содержащий сведения об операции записи. Этот объект передается делегату asyncCallback после завершения операции.

Возвращаемое значение

Объект IAsyncResult, указывающий состояние асинхронной операции.

Исключения

credential имеет значение null.

-или-

targetName имеет значение null.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Проверка подлинности уже выполнена.

-или-

Этот поток уже использовался ранее при попытке проверки подлинности со стороны сервера. Этот поток нельзя использовать для повторной проверки подлинности со стороны клиента.

Объект закрыт.

Комментарии

Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.

Асинхронную операцию проверки подлинности необходимо завершить путем вызова EndAuthenticateAsClient метода . Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.

Если проверка подлинности завершается сбоем AuthenticationException , вы получите или InvalidCredentialException. В этом случае можно повторить проверку подлинности с другими учетными данными.

См. также раздел

Применяется к

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

Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные сервера и параметры проверки подлинности. Этот метод не блокируется.

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

Параметры

credential
NetworkCredential

Учетные данные NetworkCredential, используемые для установления идентификации клиента.

targetName
String

Имя участника-службы (SPN), уникально определяющее сервер, подлинность которого проверяется.

requiredProtectionLevel
ProtectionLevel

Одно из значений перечисления ProtectionLevel, указывающее службы безопасности для потока.

allowedImpersonationLevel
TokenImpersonationLevel

Одно из значений перечисления TokenImpersonationLevel, указывающее, как сервер может использовать учетные записи клиента для доступа к ресурсам.

asyncCallback
AsyncCallback

Делегат AsyncCallback , который ссылается на метод, вызываемый после выполнения проверки подлинности.

asyncState
Object

Пользовательский объект, содержащий сведения об операции записи. Этот объект передается делегату asyncCallback после завершения операции.

Возвращаемое значение

Объект IAsyncResult, указывающий состояние асинхронной операции.

Исключения

credential имеет значение null.

-или-

targetName имеет значение null.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Объект закрыт.

Проверка подлинности уже выполнена.

-или-

Этот поток уже использовался ранее при попытке проверки подлинности со стороны сервера. Этот поток нельзя использовать для повторной проверки подлинности со стороны клиента.

Комментарии

Используйте параметр для requiredProtectionLevel запроса служб безопасности данных, передаваемых с помощью потока, прошедшего проверку подлинности. Например, чтобы данные были зашифрованы и подписаны, укажите EncryptAndSign значение . Успешная проверка подлинности не гарантирует, что запрошенная ProtectionLevel проверка подлинности была предоставлена. Необходимо проверка IsEncrypted свойства и IsSigned , чтобы определить, какие службы безопасности используются NegotiateStream.

Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.

Асинхронную операцию проверки подлинности необходимо завершить путем вызова EndAuthenticateAsClient метода . Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.

Если проверка подлинности завершается сбоем AuthenticationException , вы получите или InvalidCredentialException. В этом случае можно повторить проверку подлинности с другими учетными данными.

Применяется к

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

Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs
Исходный код:
NegotiateStream.cs

Вызывается клиентами для начала асинхронной операции проверки подлинности клиента, и, при необходимости, сервера в соединении клиент-сервер. Процесс проверки подлинности использует заданные учетные данные, параметры проверки подлинности и привязку канала. Этот метод не блокируется.

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

Параметры

credential
NetworkCredential

Учетные данные NetworkCredential, используемые для установления идентификации клиента.

binding
ChannelBinding

Объект ChannelBinding, который используется для расширенной защиты.

targetName
String

Имя участника-службы (SPN), уникально определяющее сервер, подлинность которого проверяется.

requiredProtectionLevel
ProtectionLevel

Одно из значений перечисления ProtectionLevel, указывающее службы безопасности для потока.

allowedImpersonationLevel
TokenImpersonationLevel

Одно из значений перечисления TokenImpersonationLevel, указывающее, как сервер может использовать учетные записи клиента для доступа к ресурсам.

asyncCallback
AsyncCallback

Делегат AsyncCallback , который ссылается на метод, вызываемый после выполнения проверки подлинности.

asyncState
Object

Пользовательский объект, содержащий сведения об операции записи. Этот объект передается делегату asyncCallback после завершения операции.

Возвращаемое значение

Объект IAsyncResult, указывающий состояние асинхронной операции.

Исключения

credential имеет значение null.

-или-

targetName имеет значение null.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Сбой проверки подлинности. Этот объект можно использовать для повторной проверки подлинности.

Проверка подлинности уже выполнена.

-или-

Этот поток уже использовался ранее при попытке проверки подлинности со стороны сервера. Этот поток нельзя использовать для повторной проверки подлинности со стороны клиента.

Объект закрыт.

Комментарии

Используйте параметр для requiredProtectionLevel запроса служб безопасности данных, передаваемых с помощью потока, прошедшего проверку подлинности. Например, чтобы данные были зашифрованы и подписаны, укажите EncryptAndSign значение . Успешная проверка подлинности не гарантирует, что запрошенная ProtectionLevel проверка подлинности была предоставлена. Необходимо проверка IsEncrypted свойства и IsSigned , чтобы определить, какие службы безопасности используются NegotiateStream.

Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.

Асинхронную операцию проверки подлинности необходимо завершить путем вызова EndAuthenticateAsClient метода . Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.

Если проверка подлинности завершается сбоем AuthenticationException , вы получите или InvalidCredentialException. В этом случае можно повторить проверку подлинности с другими учетными данными.

См. также раздел

Применяется к