NegotiateStream Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет поток, использующий протокол безопасности "Согласование" для проверки подлинности клиента и при необходимости сервера в обмен данными с клиентским сервером.
public ref class NegotiateStream : System::Net::Security::AuthenticatedStream
public class NegotiateStream : System.Net.Security.AuthenticatedStream
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public class NegotiateStream : System.Net.Security.AuthenticatedStream
type NegotiateStream = class
inherit AuthenticatedStream
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
type NegotiateStream = class
inherit AuthenticatedStream
Public Class NegotiateStream
Inherits AuthenticatedStream
- Наследование
- Наследование
- Атрибуты
Примеры
В следующем примере показана клиентская сторона подключения к клиентскому серверу, использующего сервер NegotiateStream. Клиент выполняет проверку подлинности и отправляет сообщение серверу асинхронно.
using System;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;
namespace Examples.NegotiateStreamExample
{
public class ASynchronousAuthenticatingTcpClient
{
static TcpClient client = null;
public static void Main(String[] args)
{
// 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);
});
Console.WriteLine("Client waiting for authentication...");
// Wait until the result is available.
authenticateTask.Wait();
// Display the properties of the authenticated stream.
AuthenticatedStreamReporter.DisplayProperties(authStream);
// Send a message to the server.
// Encode the test data into a byte array.
byte[] message = Encoding.UTF8.GetBytes("Hello from the client.");
Task writeTask = authStream
.WriteAsync(message, 0, message.Length)
.ContinueWith(task =>
{
Console.WriteLine("Client ending write operation...");
});
writeTask.Wait();
Console.WriteLine("Sent {0} bytes.", message.Length);
// Close the client connection.
authStream.Close();
Console.WriteLine("Client closed.");
}
}
// The following class displays the properties of an authenticatedStream.
public class AuthenticatedStreamReporter
{
public static void DisplayProperties(AuthenticatedStream stream)
{
Console.WriteLine("IsAuthenticated: {0}", stream.IsAuthenticated);
Console.WriteLine("IsMutuallyAuthenticated: {0}", stream.IsMutuallyAuthenticated);
Console.WriteLine("IsEncrypted: {0}", stream.IsEncrypted);
Console.WriteLine("IsSigned: {0}", stream.IsSigned);
Console.WriteLine("IsServer: {0}", stream.IsServer);
}
}
}
Imports System.Text
Imports System.Net.Sockets
Imports System.Net.Security
Imports System.Net
Namespace Examples.NegotiateStreamExample
Public Class ASynchronousAuthenticatingTcpClient
Shared client As TcpClient = Nothing
Public Shared Sub Main(args As String())
' 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)
Console.WriteLine("Client waiting for authentication...")
' Wait until the result is available.
ar.AsyncWaitHandle.WaitOne()
' Display the properties of the authenticated stream.
AuthenticatedStreamReporter.DisplayProperties(authStream)
' Send a message to the server.
' Encode the test data into a byte array.
Dim message = Encoding.UTF8.GetBytes("Hello from the client.")
ar = authStream.BeginWrite(message, 0, message.Length,
New AsyncCallback(AddressOf EndWriteCallback), authStream)
ar.AsyncWaitHandle.WaitOne()
Console.WriteLine("Sent {0} bytes.", message.Length)
' Close the client connection.
authStream.Close()
Console.WriteLine("Client closed.")
End Sub
' The following method is called when the authentication completes.
Public Shared Sub EndAuthenticateCallback(ar As IAsyncResult)
Console.WriteLine("Client ending authentication...")
Dim authStream = CType(ar.AsyncState, NegotiateStream)
Console.WriteLine("ImpersonationLevel: {0}", authStream.ImpersonationLevel)
' End the asynchronous operation.
authStream.EndAuthenticateAsClient(ar)
End Sub
' The following method is called when the write operation completes.
Public Shared Sub EndWriteCallback(ar As IAsyncResult)
Console.WriteLine("Client ending write operation...")
Dim authStream = CType(ar.AsyncState, NegotiateStream)
' End the asynchronous operation.
authStream.EndWrite(ar)
End Sub
End Class
' The following class displays the properties of an AuthenticatedStream.
Public Class AuthenticatedStreamReporter
Public Shared Sub DisplayProperties(stream As AuthenticatedStream)
Console.WriteLine("IsAuthenticated: {0}", stream.IsAuthenticated)
Console.WriteLine("IsMutuallyAuthenticated: {0}", stream.IsMutuallyAuthenticated)
Console.WriteLine("IsEncrypted: {0}", stream.IsEncrypted)
Console.WriteLine("IsSigned: {0}", stream.IsSigned)
Console.WriteLine("IsServer: {0}", stream.IsServer)
End Sub
End Class
End Namespace
В следующем примере кода демонстрируется серверная сторона подключения клиента-сервера, которая используется NegotiateStream для проверки подлинности клиента и считывает сообщение, отправленное клиентом.
using System;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;
using System.Security.Authentication;
using System.Security.Principal;
using System.Text;
using System.IO;
using System.Threading;
namespace Examples.NegotiateStreamExample
{
public class AsynchronousAuthenticatingTcpListener
{
public static void Main()
{
// Create an IPv4 TCP/IP socket.
TcpListener listener = new TcpListener(IPAddress.Any, 11000);
// Listen for incoming connections.
listener.Start();
while (true)
{
TcpClient clientRequest;
// Application blocks while waiting for an incoming connection.
// Type CNTL-C to terminate the server.
clientRequest = listener.AcceptTcpClient();
Console.WriteLine("Client connected.");
// A client has connected.
try
{
AuthenticateClient(clientRequest);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
public static void AuthenticateClient(TcpClient clientRequest)
{
NetworkStream stream = clientRequest.GetStream();
// Create the NegotiateStream.
NegotiateStream authStream = new NegotiateStream(stream, false);
// Save the current client and NegotiateStream instance
// in a ClientState object.
ClientState cState = new ClientState(authStream, clientRequest);
// Listen for the client authentication request.
Task authTask = authStream
.AuthenticateAsServerAsync()
.ContinueWith(task => { EndAuthenticateCallback(cState); });
// Any exceptions that occurred during authentication are
// thrown by the EndAuthenticateAsServer method.
try
{
// This call blocks until the authentication is complete.
authTask.Wait();
}
catch (AuthenticationException e)
{
Console.WriteLine(e);
Console.WriteLine("Authentication failed - closing connection.");
return;
}
catch (Exception e)
{
Console.WriteLine(e);
Console.WriteLine("Closing connection.");
return;
}
Task<int> readTask = authStream
.ReadAsync(cState.Buffer, 0, cState.Buffer.Length);
readTask
.ContinueWith((task) => { EndReadCallback(cState, task.Result); })
.Wait();
// Finished with the current client.
authStream.Close();
clientRequest.Close();
}
private static void EndAuthenticateCallback(ClientState cState)
{
// Get the saved data.
NegotiateStream authStream = (NegotiateStream)cState.AuthenticatedStream;
Console.WriteLine("Ending authentication.");
// Display properties of the authenticated client.
IIdentity id = authStream.RemoteIdentity;
Console.WriteLine("{0} was authenticated using {1}.",
id.Name,
id.AuthenticationType
);
}
private static void EndReadCallback(ClientState cState, int bytes)
{
NegotiateStream authStream = (NegotiateStream)cState.AuthenticatedStream;
// Read the client message.
try
{
cState.Message.Append(Encoding.UTF8.GetChars(cState.Buffer, 0, bytes));
if (bytes != 0)
{
Task<int> readTask = authStream.ReadAsync(cState.Buffer, 0, cState.Buffer.Length);
readTask
.ContinueWith(task => { EndReadCallback(cState, task.Result); })
.Wait();
return;
}
}
catch (Exception e)
{
// A real application should do something
// useful here, such as logging the failure.
Console.WriteLine("Client message exception:");
Console.WriteLine(e);
return;
}
IIdentity id = authStream.RemoteIdentity;
Console.WriteLine("{0} says {1}", id.Name, cState.Message.ToString());
}
}
// ClientState is the AsyncState object.
internal class ClientState
{
private StringBuilder _message = null;
internal ClientState(AuthenticatedStream a, TcpClient theClient)
{
AuthenticatedStream = a;
Client = theClient;
}
internal TcpClient Client { get; }
internal AuthenticatedStream AuthenticatedStream { get; }
internal byte[] Buffer { get; } = new byte[2048];
internal StringBuilder Message
{
get { return _message ??= new StringBuilder(); }
}
}
}
Комментарии
NegotiateStream Используйте класс для проверки подлинности и для защиты информации, передаваемой между клиентом и сервером. С помощью NegotiateStreamэтого метода можно выполнить следующие действия.
- Отправьте учетные данные клиента на сервер для олицетворения или делегирования.
- Запрос проверки подлинности сервера.
- Перед передачей шифруйте и(или) подписывание данных.
Перед передачей информации необходимо выполнить проверку подлинности. Клиенты запрашивают проверку подлинности с помощью синхронных методов, которые блокируются до завершения проверки подлинности или асинхронных AuthenticateAsClientBeginAuthenticateAsClient методов, которые не блокируются при ожидании завершения проверки подлинности. Серверы запрашивают проверку подлинности с помощью синхронных AuthenticateAsServer или асинхронных BeginAuthenticateAsServer методов. Клиент и при необходимости сервер проходят проверку подлинности с помощью протокола безопасности "Согласование". Протокол Kerberos используется для проверки подлинности, если он поддерживается как клиентом, так и сервером; в противном случае используется NTLM. Класс NegotiateStream выполняет проверку подлинности с помощью интерфейса поставщика поддержки безопасности (SSPI).
При успешной проверке подлинности необходимо проверить IsEncrypted и IsSigned свойства, чтобы определить, какие службы безопасности будут использоваться NegotiateStream для защиты данных во время передачи. IsMutuallyAuthenticated Проверьте свойство, чтобы определить, произошла ли взаимная проверка подлинности. Вы можете получить сведения о удаленном клиенте или сервере RemoteIdentity с помощью свойства.
Если проверка подлинности завершается ошибкойAuthenticationException, вы получите или .InvalidCredentialException В этом случае можно повторить проверку подлинности с помощью других учетных данных.
Данные отправляются с помощью синхронных или асинхронных WriteBeginWrite или WriteAsync методов. Вы получаете данные с помощью синхронных или асинхронных ReadReadAsync или BeginRead методов. Если службы безопасности, такие как шифрование или подписывание, включены, они автоматически применяются к данным NegotiateStream.
Передает NegotiateStream данные с помощью потока, который вы предоставляете при создании NegotiateStream. При предоставлении базового потока можно указать, закрывается ли закрытие NegotiateStream базового потока.
Конструкторы
| Имя | Описание |
|---|---|
| NegotiateStream(Stream, Boolean) |
Инициализирует новый экземпляр класса с помощью указанного NegotiateStreamStream и режима закрытия потока. |
| NegotiateStream(Stream) |
Инициализирует новый экземпляр класса с помощью указанного NegotiateStreamStream. |
Свойства
| Имя | Описание |
|---|---|
| CanRead |
Boolean Возвращает значение, указывающее, доступен ли базовый поток для чтения. |
| CanSeek |
Boolean Возвращает значение, указывающее, можно ли искать базовый поток. |
| CanTimeout |
Возвращает значение, указывающее, поддерживает ли базовый Boolean поток время ожидания. |
| CanWrite |
Boolean Возвращает значение, указывающее, является ли базовый поток записываемым. |
| ImpersonationLevel |
Возвращает значение, указывающее, как сервер может использовать учетные данные клиента. |
| InnerStream |
Получает поток, используемый этим AuthenticatedStream для отправки и получения данных. (Унаследовано от AuthenticatedStream) |
| IsAuthenticated |
Boolean Возвращает значение, указывающее, выполнена ли проверка подлинности успешно. |
| IsEncrypted |
Boolean Возвращает значение, указывающее, используется ли шифрование NegotiateStream данных. |
| IsMutuallyAuthenticated |
Boolean Возвращает значение, указывающее, прошел ли проверка подлинности как сервер, так и клиент. |
| IsServer |
Boolean Возвращает значение, указывающее, была ли локальная сторона подключения, используемая этим NegotiateStream подключением, прошла проверку подлинности в качестве сервера. |
| IsSigned |
Boolean Возвращает значение, указывающее, подписаны ли данные, отправленные с помощью этого потока. |
| LeaveInnerStreamOpen |
Возвращает, остается ли поток, используемый этим AuthenticatedStream для отправки и получения данных. (Унаследовано от AuthenticatedStream) |
| Length |
Возвращает длину базового потока. |
| Position |
Возвращает или задает текущую позицию в базовом потоке. |
| ReadTimeout |
Возвращает или задает время, когда блоки операций чтения ожидают данных. |
| RemoteIdentity |
Получает сведения об удостоверении удаленной стороны, совместном доступе к этому потоку с проверкой подлинности. |
| WriteTimeout |
Возвращает или задает время, когда блоки операций записи ожидают данных. |
Методы
| Имя | Описание |
|---|---|
| AuthenticateAsClient() |
Вызывается клиентами для проверки подлинности клиента и при необходимости сервера в подключении к клиентскому серверу. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Вызывается клиентами для проверки подлинности клиента и при необходимости сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные, параметры проверки подлинности и привязка канала. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String) |
Вызывается клиентами для проверки подлинности клиента и при необходимости сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанные учетные данные клиента и привязку канала. |
| AuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Вызывается клиентами для проверки подлинности клиента и при необходимости сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные и параметры проверки подлинности. |
| AuthenticateAsClient(NetworkCredential, String) |
Вызывается клиентами для проверки подлинности клиента и при необходимости сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные клиента. |
| AuthenticateAsClientAsync() |
Вызывается клиентами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Вызывается клиентами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. В процессе проверки подлинности используются указанные учетные данные, параметры проверки подлинности и привязка канала. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String) |
Вызывается клиентами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. Процесс проверки подлинности использует указанные учетные данные клиента и привязку канала. |
| AuthenticateAsClientAsync(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Вызывается клиентами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. В процессе проверки подлинности используются указанные учетные данные и параметры проверки подлинности. |
| AuthenticateAsClientAsync(NetworkCredential, String) |
Вызывается клиентами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. В процессе проверки подлинности используются указанные учетные данные клиента. |
| AuthenticateAsServer() |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. |
| AuthenticateAsServer(ExtendedProtectionPolicy) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанную расширенную политику защиты. |
| AuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные сервера, параметры проверки подлинности и расширенная политика защиты. |
| AuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные сервера и параметры проверки подлинности. |
| AuthenticateAsServerAsync() |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. |
| AuthenticateAsServerAsync(ExtendedProtectionPolicy) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. Процесс проверки подлинности использует указанную расширенную политику защиты. |
| AuthenticateAsServerAsync(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. В процессе проверки подлинности используются указанные учетные данные сервера, параметры проверки подлинности и расширенная политика защиты. |
| AuthenticateAsServerAsync(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Вызывается серверами для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу в качестве асинхронной операции. В процессе проверки подлинности используются указанные учетные данные сервера и параметры проверки подлинности. |
| BeginAuthenticateAsClient(AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанные учетные данные и привязку канала. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные, параметры проверки подлинности и привязка канала. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные. Этот метод не блокируется. |
| BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается клиентами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные и параметры проверки подлинности. Этот метод не блокируется. |
| BeginAuthenticateAsServer(AsyncCallback, Object) |
Вызывается серверами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Этот метод не блокируется. |
| BeginAuthenticateAsServer(ExtendedProtectionPolicy, AsyncCallback, Object) |
Вызывается серверами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. Процесс проверки подлинности использует указанную расширенную политику защиты. Этот метод не блокируется. |
| BeginAuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается серверами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные сервера, параметры проверки подлинности и расширенная политика защиты. Этот метод не блокируется. |
| BeginAuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Вызывается серверами, чтобы начать асинхронную операцию для проверки подлинности клиента и, при необходимости, сервера в подключении к клиентскому серверу. В процессе проверки подлинности используются указанные учетные данные сервера и параметры проверки подлинности. Этот метод не блокируется. |
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронную операцию чтения, которая считывает данные из потока и сохраняет ее в указанном массиве. |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает асинхронную операцию записи, которая записывает Byteданные из указанного буфера в поток. |
| Close() |
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. Вместо вызова этого метода убедитесь, что поток правильно удален. (Унаследовано от Stream) |
| CopyTo(Stream, Int32) |
Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CopyTo(Stream) |
Считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CopyToAsync(Stream, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток с помощью указанного маркера отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и маркер отмены. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CopyToAsync(Stream, Int32) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CopyToAsync(Stream) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков расширены по количеству скопированных байтов. (Унаследовано от Stream) |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| CreateWaitHandle() |
Устаревшие..
Устаревшие..
Устаревшие..
WaitHandle Выделяет объект. (Унаследовано от Stream) |
| Dispose() |
Освобождает все ресурсы, используемые параметром Stream. (Унаследовано от Stream) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые NegotiateStream и при необходимости освобождает управляемые ресурсы. |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые AuthenticatedStream и при необходимости освобождает управляемые ресурсы. (Унаследовано от AuthenticatedStream) |
| DisposeAsync() |
Асинхронно освобождает неуправляемые и управляемые ресурсы, используемые в .NegotiateStream |
| EndAuthenticateAsClient(IAsyncResult) |
Завершает ожидающую асинхронную операцию проверки подлинности клиента, которая была запущена с вызовом BeginAuthenticateAsClient. |
| EndAuthenticateAsServer(IAsyncResult) |
Завершает ожидающую асинхронную операцию проверки подлинности клиента, которая была запущена с вызовом BeginAuthenticateAsServer. |
| EndRead(IAsyncResult) |
Завершает асинхронную операцию чтения, которая была запущена с вызовом BeginRead(Byte[], Int32, Int32, AsyncCallback, Object). |
| EndWrite(IAsyncResult) |
Завершает асинхронную операцию записи, которая была запущена с вызовом BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object). |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Flush() |
Вызывает запись буферных данных на базовое устройство. |
| FlushAsync() |
Асинхронно очищает все буферы для этого потока и приводит к записи всех буферных данных на базовое устройство. (Унаследовано от Stream) |
| FlushAsync(CancellationToken) |
Асинхронно записывает все буферированные данные на базовое устройство. |
| FlushAsync(CancellationToken) |
Асинхронно очищает все буферы для этого потока, приводит к записи всех буферных данных на базовое устройство и отслеживает запросы на отмену. (Унаследовано от Stream) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ObjectInvariant() |
Устаревшие..
Предоставляет поддержку Contractдля . (Унаследовано от Stream) |
| Read(Byte[], Int32, Int32) |
Считывает данные из этого потока и сохраняет его в указанном массиве. |
| Read(Span<Byte>) |
При переопределении в производном классе считывает последовательность байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает данные из этого потока и сохраняет его в указанном массиве. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию в потоке по числу байтов. (Унаследовано от Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает данные из NegotiateStream диапазона памяти байтов и сохраняет их в виде асинхронной операции. |
| ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
| ReadAtLeast(Span<Byte>, Int32, Boolean) |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает положение в потоке по количеству байтов, считываемых. (Унаследовано от Stream) |
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает положение в потоке по количеству операций чтения байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
| ReadByte() |
Считывает байт из потока и перемещает позицию в потоке по одному байту или возвращает -1, если в конце потока. (Унаследовано от Stream) |
| ReadExactly(Byte[], Int32, Int32) |
Считывает количество байтов из текущего потока и перемещает |
| ReadExactly(Span<Byte>) |
Считывает байты из текущего потока и перемещает положение в потоке, пока не будет заполнено |
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает количество байтов из текущего потока, перемещает |
| ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает байты из текущего потока, перемещает положение в потоке до тех пор, пока не |
| Seek(Int64, SeekOrigin) |
Бросает NotSupportedException. |
| SetLength(Int64) |
Задает длину базового потока. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| Write(Byte[], Int32, Int32) |
Запишите указанное число s в Byteбазовый поток с помощью указанного буфера и смещения. |
| Write(ReadOnlySpan<Byte>) |
При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно записывает указанное число Bytes в базовый поток. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов. (Унаследовано от Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно записывает указанное число Bytes в базовый поток. |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию в этом потоке по количеству записанных байтов и отслеживает запросы на отмену. (Унаследовано от Stream) |
| WriteByte(Byte) |
Записывает байт в текущую позицию в потоке и перемещает позицию в потоке по одному байту. (Унаследовано от Stream) |
Методы расширения
| Имя | Описание |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |
| CopyToAsync(Stream, PipeWriter, CancellationToken) |
Асинхронно считывает байты из Stream указанных и записывает их в указанный PipeWriterмаркер отмены. |