NegotiateStream コンストラクター

定義

NegotiateStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NegotiateStream class.

オーバーロード

NegotiateStream(Stream)

指定した NegotiateStream を使用して Stream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NegotiateStream class using the specified Stream.

NegotiateStream(Stream, Boolean)

指定した NegotiateStream とストリームを閉じる動作を使用して、Stream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NegotiateStream class using the specified Stream and stream closure behavior.

注釈

指定したストリームを NegotiateStream が終了しないようにするには、NegotiateStream(Stream, Boolean) コンストラクターを使用します。To prevent the NegotiateStream from closing the stream that you supply, use the NegotiateStream(Stream, Boolean) constructor.

NegotiateStream(Stream)

指定した NegotiateStream を使用して Stream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NegotiateStream class using the specified Stream.

public:
 NegotiateStream(System::IO::Stream ^ innerStream);
public NegotiateStream (System.IO.Stream innerStream);
new System.Net.Security.NegotiateStream : System.IO.Stream -> System.Net.Security.NegotiateStream
Public Sub New (innerStream As Stream)

パラメーター

innerStream
Stream

Stream がデータの送受信に使用する NegotiateStream オブジェクト。A Stream object used by the NegotiateStream for sending and receiving data.

次のコード例は、このコンストラクターを呼び出す方法を示しています。The following code example demonstrates calling this constructor.

// 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.
TcpClient^ 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 );

// 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( dynamic_cast<NetworkCredential^>(CredentialCache::DefaultCredentials), 
       L"", 
       ProtectionLevel::EncryptAndSign, 
       TokenImpersonationLevel::Impersonation );

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

NegotiateStream(Stream, Boolean)

指定した NegotiateStream とストリームを閉じる動作を使用して、Stream クラスの新しいインスタンスを初期化します。Initializes a new instance of the NegotiateStream class using the specified Stream and stream closure behavior.

public:
 NegotiateStream(System::IO::Stream ^ innerStream, bool leaveInnerStreamOpen);
public NegotiateStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen);
new System.Net.Security.NegotiateStream : System.IO.Stream * bool -> System.Net.Security.NegotiateStream
Public Sub New (innerStream As Stream, leaveInnerStreamOpen As Boolean)

パラメーター

innerStream
Stream

Stream がデータの送受信に使用する NegotiateStream オブジェクト。A Stream object used by the NegotiateStream for sending and receiving data.

leaveInnerStreamOpen
Boolean

この true を閉じても、NegotiateStream が影響を受けないことを示す場合は innerStream。この false を閉じると、NegotiateStream も閉じられることを示す場合は innerStreamtrue to indicate that closing this NegotiateStream has no effect on innerStream; false to indicate that closing this NegotiateStream also closes innerStream.

例外

innerStreamnull です。innerStream is null.

または-or- innerStreamNull が等価です。innerStream is equal to Null.

次の例は、このコンストラクターの呼び出しを示しています。The following example demonstrates calling this constructor. このコード例は、NegotiateStream クラス用に用意されている大規模な例の一部です。This code example is part of a larger example provided for the NegotiateStream class.

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

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

注釈

leaveStreamOpen パラメーターに true を指定した場合、NegotiateStream を閉じると innerStream ストリームには影響しません。不要になった innerStream は、明示的に閉じる必要があります。When you specify true for the leaveStreamOpen parameter, closing the NegotiateStream has no effect on the innerStream stream; you must explicitly close innerStream when you no longer need it.

適用対象