NegotiateStream Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een stroom die gebruikmaakt van het negotiate-beveiligingsprotocol voor het verifiëren van de client, en eventueel de server, in client-servercommunicatie.
public ref class NegotiateStream : System::Net::Security::AuthenticatedStream
public class NegotiateStream : System.Net.Security.AuthenticatedStream
type NegotiateStream = class
inherit AuthenticatedStream
Public Class NegotiateStream
Inherits AuthenticatedStream
- Overname
Voorbeelden
In het volgende voorbeeld ziet u de clientzijde van een client-serververbinding die gebruikmaakt van .NegotiateStream De client verifieert en verzendt asynchroon een bericht naar de server.
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
In het volgende codevoorbeeld ziet u de serverzijde van een client-serververbinding die gebruikmaakt van de NegotiateStream client om de client te verifiëren en een bericht te lezen dat door de client wordt verzonden.
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(); }
}
}
}
Opmerkingen
Gebruik de NegotiateStream klasse voor verificatie en om gegevens te beveiligen die worden verzonden tussen een client en een server. Met behulp van NegotiateStream, kunt u het volgende doen.
- Verzend de referenties van de client naar de server voor imitatie of delegering.
- Serververificatie aanvragen.
- Gegevens versleutelen en/of ondertekenen voordat ze worden verzonden.
Verificatie moet worden uitgevoerd voordat gegevens worden verzonden. Clients vragen verificatie aan met behulp van de synchrone AuthenticateAsClient methoden, die blokkeren totdat de verificatie is voltooid, of de asynchrone BeginAuthenticateAsClient methoden, die niet worden geblokkeerd terwijl wordt gewacht totdat de verificatie is voltooid. Servers vragen verificatie aan met behulp van de synchrone AuthenticateAsServer of asynchrone BeginAuthenticateAsServer methoden. De client en eventueel de server worden geverifieerd met behulp van het protocol Negotiate Security. Het Kerberos-protocol wordt gebruikt voor verificatie als zowel de client als de server dit ondersteunen; anders wordt NTLM gebruikt. De NegotiateStream klasse voert de verificatie uit met behulp van de SSPI (Security Support Provider Interface).
Wanneer de verificatie is geslaagd, moet u de IsEncrypted en IsSigned eigenschappen controleren om te bepalen welke beveiligingsservices worden gebruikt door de NegotiateStream beveiligingsservices om uw gegevens tijdens de overdracht te beveiligen. Controleer de IsMutuallyAuthenticated eigenschap om te bepalen of er wederzijdse verificatie is opgetreden. U kunt informatie over de externe client of server ophalen met behulp van de RemoteIdentity eigenschap.
Als de verificatie mislukt, ontvangt u een AuthenticationException of een InvalidCredentialException. In dit geval kunt u de verificatie opnieuw proberen met een andere referentie.
U verzendt gegevens met behulp van de synchrone Write of asynchrone BeginWrite methoden WriteAsync . U ontvangt gegevens met behulp van de synchrone Read of asynchrone ReadAsync methoden BeginRead . Als beveiligingsservices zoals versleuteling of ondertekening zijn ingeschakeld, worden deze automatisch toegepast op uw gegevens door de NegotiateStream.
De NegotiateStream gegevens worden verzonden met behulp van een stroom die u opgeeft bij het maken van de NegotiateStream. Wanneer u deze onderliggende stroom opgeeft, kunt u opgeven of de NegotiateStream onderliggende stroom ook wordt gesloten.
Constructors
| Name | Description |
|---|---|
| NegotiateStream(Stream, Boolean) |
Initialiseert een nieuw exemplaar van de NegotiateStream klasse met behulp van het opgegeven Stream gedrag en het afsluiten van stromen. |
| NegotiateStream(Stream) |
Initialiseert een nieuw exemplaar van de NegotiateStream klasse met behulp van de opgegeven Stream. |
Eigenschappen
| Name | Description |
|---|---|
| CanRead |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de onderliggende stroom leesbaar is. |
| CanSeek |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de onderliggende stroom kan worden gezocht. |
| CanTimeout |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de onderliggende stroom time-outs ondersteunt. |
| CanWrite |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de onderliggende stroom beschrijfbaar is. |
| ImpersonationLevel |
Hiermee wordt een waarde opgehaald die aangeeft hoe de server de referenties van de client kan gebruiken. |
| InnerStream |
Hiermee haalt u de stream op die wordt AuthenticatedStream gebruikt voor het verzenden en ontvangen van gegevens. (Overgenomen van AuthenticatedStream) |
| IsAuthenticated |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de verificatie is geslaagd. |
| IsEncrypted |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of er NegotiateStream gegevensversleuteling wordt gebruikt. |
| IsMutuallyAuthenticated |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of zowel de server als de client zijn geverifieerd. |
| IsServer |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de lokale kant van de verbinding die door deze NegotiateStream verbinding wordt gebruikt, is geverifieerd als de server. |
| IsSigned |
Hiermee wordt een Boolean waarde opgehaald die aangeeft of de gegevens die met deze stream worden verzonden, zijn ondertekend. |
| LeaveInnerStreamOpen |
Hiermee wordt aangegeven of de stream die door deze AuthenticatedStream stroom wordt gebruikt voor het verzenden en ontvangen van gegevens, open is gelaten. (Overgenomen van AuthenticatedStream) |
| Length |
Hiermee haalt u de lengte van de onderliggende stroom op. |
| Position |
Hiermee haalt u de huidige positie in de onderliggende stroom op of stelt u deze in. |
| ReadTimeout |
Hiermee wordt de hoeveelheid tijd die een leesbewerking blokkeert, opgehaald of ingesteld die wacht op gegevens. |
| RemoteIdentity |
Haalt informatie op over de identiteit van de externe partij die deze geverifieerde stream deelt. |
| WriteTimeout |
Hiermee haalt u de hoeveelheid tijd op die een schrijfbewerking blokkeert die wacht op gegevens. |
Methoden
| Name | Description |
|---|---|
| AuthenticateAsClient() |
Wordt aangeroepen door clients om de client en eventueel de server te verifiëren in een client-serververbinding. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Wordt aangeroepen door clients om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties, verificatieopties en kanaalbinding. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String) |
Wordt aangeroepen door clients om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven clientreferenties en de kanaalbinding. |
| AuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Wordt aangeroepen door clients om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties en verificatieopties. |
| AuthenticateAsClient(NetworkCredential, String) |
Wordt aangeroepen door clients om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven clientreferenties. |
| AuthenticateAsClientAsync() |
Aangeroepen door clients om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Aangeroepen door clients om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven referenties, verificatieopties en kanaalbinding. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String) |
Aangeroepen door clients om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven clientreferenties en de kanaalbinding. |
| AuthenticateAsClientAsync(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Aangeroepen door clients om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven referenties en verificatieopties. |
| AuthenticateAsClientAsync(NetworkCredential, String) |
Aangeroepen door clients om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven clientreferenties. |
| AuthenticateAsServer() |
Wordt aangeroepen door servers om de client en eventueel de server te verifiëren in een client-serververbinding. |
| AuthenticateAsServer(ExtendedProtectionPolicy) |
Wordt aangeroepen door servers om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van het opgegeven uitgebreide beveiligingsbeleid. |
| AuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Wordt aangeroepen door servers om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven serverreferenties, verificatieopties en uitgebreid beveiligingsbeleid. |
| AuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Wordt aangeroepen door servers om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven serverreferenties en verificatieopties. |
| AuthenticateAsServerAsync() |
Aangeroepen door servers om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. |
| AuthenticateAsServerAsync(ExtendedProtectionPolicy) |
Aangeroepen door servers om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van het opgegeven uitgebreide beveiligingsbeleid. |
| AuthenticateAsServerAsync(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Aangeroepen door servers om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven serverreferenties, verificatieopties en uitgebreid beveiligingsbeleid. |
| AuthenticateAsServerAsync(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Aangeroepen door servers om de client te verifiëren, en eventueel de server, in een client-serververbinding als asynchrone bewerking. Het verificatieproces maakt gebruik van de opgegeven serverreferenties en verificatieopties. |
| BeginAuthenticateAsClient(AsyncCallback, Object) |
Clients worden aangeroepen om een asynchrone bewerking te starten om de client en eventueel de server te verifiëren in een client-serververbinding. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object) |
Clients worden aangeroepen om een asynchrone bewerking te starten om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties en kanaalbinding. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Clients worden aangeroepen om een asynchrone bewerking te starten om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties, verificatieopties en kanaalbinding. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object) |
Clients worden aangeroepen om een asynchrone bewerking te starten om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Clients worden aangeroepen om een asynchrone bewerking te starten om de client en eventueel de server te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven referenties en verificatieopties. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsServer(AsyncCallback, Object) |
Wordt aangeroepen door servers om een asynchrone bewerking te starten om de client, en eventueel de server, te verifiëren in een client-serververbinding. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsServer(ExtendedProtectionPolicy, AsyncCallback, Object) |
Wordt aangeroepen door servers om een asynchrone bewerking te starten om de client, en eventueel de server, te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van het opgegeven uitgebreide beveiligingsbeleid. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Wordt aangeroepen door servers om een asynchrone bewerking te starten om de client, en eventueel de server, te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven serverreferenties, verificatieopties en uitgebreid beveiligingsbeleid. Deze methode wordt niet geblokkeerd. |
| BeginAuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Wordt aangeroepen door servers om een asynchrone bewerking te starten om de client, en eventueel de server, te verifiëren in een client-serververbinding. Het verificatieproces maakt gebruik van de opgegeven serverreferenties en verificatieopties. Deze methode wordt niet geblokkeerd. |
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Hiermee wordt een asynchrone leesbewerking gestart waarmee gegevens uit de stroom worden gelezen en opgeslagen in de opgegeven matrix. |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Hiermee wordt een asynchrone schrijfbewerking gestart die s van de opgegeven buffer naar de stream schrijft Byte. |
| Close() |
Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. In plaats van deze methode aan te roepen, moet u ervoor zorgen dat de stream correct wordt verwijderd. (Overgenomen van Stream) |
| CopyTo(Stream, Int32) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyTo(Stream) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stream met behulp van een opgegeven annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream) |
Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| CreateWaitHandle() |
Verouderd.
Wijst een WaitHandle object toe. (Overgenomen van Stream) |
| Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de NegotiateStream beheerde resources en brengt eventueel de beheerde resources vrij. |
| DisposeAsync() |
Asynchroon publiceert de onbeheerde en beheerde resources die worden gebruikt door de NegotiateStream. |
| EndAuthenticateAsClient(IAsyncResult) |
Hiermee wordt een asynchrone clientverificatiebewerking beëindigd die is gestart met een aanroep naar BeginAuthenticateAsClient. |
| EndAuthenticateAsServer(IAsyncResult) |
Hiermee wordt een asynchrone clientverificatiebewerking beëindigd die is gestart met een aanroep naar BeginAuthenticateAsServer. |
| EndRead(IAsyncResult) |
Hiermee wordt een asynchrone leesbewerking beëindigd die is gestart met een aanroep naar BeginRead(Byte[], Int32, Int32, AsyncCallback, Object). |
| EndWrite(IAsyncResult) |
Hiermee wordt een asynchrone schrijfbewerking beëindigd die is gestart met een aanroep naar BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object). |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Flush() |
Zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven. |
| FlushAsync() |
Asynchroon wist alle buffers voor deze stroom en zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven. (Overgenomen van Stream) |
| FlushAsync(CancellationToken) |
Asynchroon schrijft eventuele gebufferde gegevens naar het onderliggende apparaat. |
| FlushAsync(CancellationToken) |
Asynchroon wist alle buffers voor deze stroom, zorgt ervoor dat gebufferde gegevens naar het onderliggende apparaat worden geschreven en annuleringsaanvragen worden gecontroleerd. (Overgenomen van Stream) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| ObjectInvariant() |
Verouderd.
Biedt ondersteuning voor een Contract. (Overgenomen van Stream) |
| Read(Byte[], Int32, Int32) |
Leest gegevens uit deze stream en slaat deze op in de opgegeven matrix. |
| Read(Span<Byte>) |
Wanneer deze wordt overschreven in een afgeleide klasse, leest u een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van Stream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige stroom, verplaatst de positie binnen de stream door het aantal gelezen bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Asynchroon leest een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige stroom, verplaatst de positie binnen de stream door het aantal gelezen bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| ReadByte() |
Hiermee leest u een byte uit de stroom en wordt de positie binnen de stream met één byte vooruit gelezen of wordt -1 geretourneerd als aan het einde van de stream. (Overgenomen van Stream) |
| Seek(Int64, SeekOrigin) |
Werpt NotSupportedException. |
| SetLength(Int64) |
Hiermee stelt u de lengte van de onderliggende stroom in. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| Write(Byte[], Int32, Int32) |
Schrijf het opgegeven aantal s naar de onderliggende stroom met behulp van Bytede opgegeven buffer en offset. |
| Write(ReadOnlySpan<Byte>) |
Wanneer deze wordt overschreven in een afgeleide klasse, schrijft u een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst met het aantal geschreven bytes. (Overgenomen van Stream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Asynchroon schrijft een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes. (Overgenomen van Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| WriteByte(Byte) |
Hiermee schrijft u een byte naar de huidige positie in de stroom en wordt de positie binnen de stream met één byte vooruit. (Overgenomen van Stream) |
Extensiemethoden
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Hiermee configureert u hoe wacht op de taken die worden geretourneerd op basis van een asynchroon wegwerp, worden uitgevoerd. |