NegotiateStream Конструкторы

Определение

Инициализирует новый экземпляр класса NegotiateStream.

Перегрузки

NegotiateStream(Stream)

Инициализирует новый экземпляр класса NegotiateStream с использованием указанного объекта Stream.

NegotiateStream(Stream, Boolean)

Инициализирует новый экземпляр класса NegotiateStream, используя заданный поток Stream и параметр, указывающий поведение потока при закрытии.

Комментарии

Чтобы предотвратить NegotiateStream закрытие потока, который вы предоставляете NegotiateStream(Stream, Boolean) , используйте конструктор .

NegotiateStream(Stream)

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

Инициализирует новый экземпляр класса NegotiateStream с использованием указанного объекта Stream.

public NegotiateStream (System.IO.Stream innerStream);

Параметры

innerStream
Stream

Объект Stream, используемый потоком NegotiateStream для отправки и получения данных.

Примеры

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

 // 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 = new IPEndPoint(ipAddress,11000);
 // Create a TCP/IP socket.
TcpClient 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);
 // Request authentication for the client only (no mutual authentication).
 // Authenicate using the client's default credetials.
 // Permit the server to impersonate the client to access resources on the server only.
 // Request that data be transmitted using encryption and data signing.
 authStream.AuthenticateAsClient(
      (NetworkCredential) CredentialCache.DefaultCredentials,
      "",
      ProtectionLevel.EncryptAndSign,
      TokenImpersonationLevel.Impersonation);

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

NegotiateStream(Stream, Boolean)

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

Инициализирует новый экземпляр класса NegotiateStream, используя заданный поток Stream и параметр, указывающий поведение потока при закрытии.

public NegotiateStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen);

Параметры

innerStream
Stream

Объект Stream, используемый потоком NegotiateStream для отправки и получения данных.

leaveInnerStreamOpen
Boolean

Значение true указывает, что закрытие этого потока NegotiateStream не влияет на поток, заданный параметром innerStream; значение false указывает, что закрытие потока NegotiateStream приводит также к закрытию потока innerStream.

Исключения

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

-или-

innerStream равно Null.

Примеры

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

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

Комментарии

При указании trueleaveStreamOpen параметра закрытие NegotiateStream не оказывает влияния на innerStream поток; необходимо явно закрыть innerStream , когда он больше не нужен.

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1