NegotiateStream.BeginAuthenticateAsClient Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает асинхронную операцию для проверки подлинности клиентской стороны подключения к клиентскому серверу.
Перегрузки
| Имя | Описание |
|---|---|
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные, параметры проверки подлинности и привязка канала. Этот метод не блокируется. |
| BeginAuthenticateAsClient(AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанные учетные данные и привязку канала. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные и параметры проверки подлинности. Этот метод не блокируется. |
Комментарии
Перегрузки этого метода не блокируются во время выполнения проверки подлинности. Чтобы заблокировать время ожидания завершения проверки подлинности, используйте один из AuthenticateAsClient методов.
BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные, параметры проверки подлинности и привязка канала. Этот метод не блокируется.
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
Параметры
- credential
- NetworkCredential
Используется NetworkCredential для установления удостоверения клиента.
- binding
- ChannelBinding
Используется ChannelBinding для расширенной защиты.
- targetName
- String
Имя субъекта-службы , однозначно определяющее сервер для проверки подлинности.
- requiredProtectionLevel
- ProtectionLevel
Одно из ProtectionLevel значений, указывающее службы безопасности для потока.
- allowedImpersonationLevel
- TokenImpersonationLevel
Одно из TokenImpersonationLevel значений, указывающее, как сервер может использовать учетные данные клиента для доступа к ресурсам.
- asyncCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении проверки подлинности.
- asyncState
- Object
Определяемый пользователем объект, содержащий сведения об операции записи. Этот объект передается asyncCallback делегату после завершения операции.
Возвращаемое значение
Объект IAsyncResult , указывающий состояние асинхронной операции.
Исключения
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Проверка подлинности уже произошла.
–или–
Этот поток использовался ранее для попытки проверки подлинности в качестве сервера. Поток нельзя использовать для повторной проверки подлинности в качестве клиента.
Этот объект был закрыт.
Комментарии
requiredProtectionLevel Используйте параметр для запроса служб безопасности для данных, передаваемых с помощью аутентифицированного потока. Например, чтобы данные были зашифрованы и подписаны, укажите EncryptAndSign значение. Успешная проверка подлинности не гарантирует предоставление запрошенного ProtectionLevel запроса. Необходимо проверить IsEncrypted и IsSigned свойства, чтобы определить, какие службы безопасности используются службой NegotiateStreamбезопасности.
Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.
Асинхронная операция проверки подлинности должна быть завершена EndAuthenticateAsClient путем вызова метода. Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в статье "Вызов синхронных методов асинхронно"
Если проверка подлинности завершается ошибкой AuthenticationException , вы получите или объект InvalidCredentialException. В этом случае можно повторить проверку подлинности с помощью других учетных данных.
См. также раздел
Применяется к
BeginAuthenticateAsClient(AsyncCallback, Object)
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Этот метод не блокируется.
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
Параметры
- 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("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)
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные. Этот метод не блокируется.
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
Параметры
- credential
- NetworkCredential
Используется NetworkCredential для установления удостоверения клиента.
- targetName
- String
Имя субъекта-службы , однозначно определяющее сервер для проверки подлинности.
- asyncCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении проверки подлинности.
- asyncState
- Object
Определяемый пользователем объект, содержащий сведения об операции записи. Этот объект передается asyncCallback делегату после завершения операции.
Возвращаемое значение
Объект IAsyncResult , указывающий состояние асинхронной операции.
Исключения
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Этот объект был закрыт.
Проверка подлинности уже произошла.
–или–
Этот поток использовался ранее для попытки проверки подлинности в качестве сервера. Поток нельзя использовать для повторной проверки подлинности в качестве клиента.
Комментарии
Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.
Асинхронная операция проверки подлинности должна быть завершена EndAuthenticateAsClient путем вызова метода. Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в статье "Вызов синхронных методов асинхронно"
Если проверка подлинности завершается ошибкой AuthenticationException , вы получите или объект InvalidCredentialException. В этом случае можно повторить проверку подлинности с помощью других учетных данных.
Применяется к
BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object)
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанные учетные данные и привязку канала. Этот метод не блокируется.
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
Параметры
- credential
- NetworkCredential
Используется NetworkCredential для установления удостоверения клиента.
- binding
- ChannelBinding
Используется ChannelBinding для расширенной защиты.
- targetName
- String
Имя субъекта-службы , однозначно определяющее сервер для проверки подлинности.
- asyncCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении проверки подлинности.
- asyncState
- Object
Определяемый пользователем объект, содержащий сведения об операции записи. Этот объект передается asyncCallback делегату после завершения операции.
Возвращаемое значение
Объект IAsyncResult , указывающий состояние асинхронной операции.
Исключения
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Проверка подлинности уже произошла.
–или–
Этот поток использовался ранее для попытки проверки подлинности в качестве сервера. Поток нельзя использовать для повторной проверки подлинности в качестве клиента.
Этот объект был закрыт.
Комментарии
Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.
Асинхронная операция проверки подлинности должна быть завершена EndAuthenticateAsClient путем вызова метода. Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в статье "Вызов синхронных методов асинхронно"
Если проверка подлинности завершается ошибкой AuthenticationException , вы получите или объект InvalidCredentialException. В этом случае можно повторить проверку подлинности с помощью других учетных данных.
См. также раздел
Применяется к
BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object)
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные и параметры проверки подлинности. Этот метод не блокируется.
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
Параметры
- credential
- NetworkCredential
Используется NetworkCredential для установления удостоверения клиента.
- targetName
- String
Имя субъекта-службы , однозначно определяющее сервер для проверки подлинности.
- requiredProtectionLevel
- ProtectionLevel
Одно из ProtectionLevel значений, указывающее службы безопасности для потока.
- allowedImpersonationLevel
- TokenImpersonationLevel
Одно из TokenImpersonationLevel значений, указывающее, как сервер может использовать учетные данные клиента для доступа к ресурсам.
- asyncCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении проверки подлинности.
- asyncState
- Object
Определяемый пользователем объект, содержащий сведения об операции записи. Этот объект передается asyncCallback делегату после завершения операции.
Возвращаемое значение
Объект IAsyncResult , указывающий состояние асинхронной операции.
Исключения
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Сбой проверки подлинности. Этот объект можно использовать для повтора проверки подлинности.
Этот объект был закрыт.
Проверка подлинности уже произошла.
–или–
Этот поток использовался ранее для попытки проверки подлинности в качестве сервера. Поток нельзя использовать для повторной проверки подлинности в качестве клиента.
Комментарии
requiredProtectionLevel Используйте параметр для запроса служб безопасности для данных, передаваемых с помощью аутентифицированного потока. Например, чтобы данные были зашифрованы и подписаны, укажите EncryptAndSign значение. Успешная проверка подлинности не гарантирует предоставление запрошенного ProtectionLevel запроса. Необходимо проверить IsEncrypted и IsSigned свойства, чтобы определить, какие службы безопасности используются службой NegotiateStreamбезопасности.
Этот метод является асинхронным и не блокируется во время завершения операции. Чтобы заблокировать до завершения операции, используйте одну из AuthenticateAsClient перегрузок метода.
Асинхронная операция проверки подлинности должна быть завершена EndAuthenticateAsClient путем вызова метода. Как правило, метод вызывается делегатом asyncCallback . Подробные сведения об использовании асинхронной модели программирования см. в статье "Вызов синхронных методов асинхронно"
Если проверка подлинности завершается ошибкой AuthenticationException , вы получите или объект InvalidCredentialException. В этом случае можно повторить проверку подлинности с помощью других учетных данных.