NegotiateStream Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en dataström som använder Protokollet Förhandla om säkerhet för att autentisera klienten, och eventuellt servern, i klient-server-kommunikation.
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
- Arv
Exempel
I följande exempel visas klientsidan för en klient-server-anslutning som använder NegotiateStream. Klienten autentiserar och skickar ett meddelande till servern asynkront.
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
I följande kodexempel visas serversidan för en klient-server-anslutning som använder för att autentisera NegotiateStream klienten och läsa ett meddelande som skickas av klienten.
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(); }
}
}
}
Kommentarer
NegotiateStream Använd klassen för autentisering och för att skydda information som överförs mellan en klient och en server. Med kan NegotiateStreamdu göra följande.
- Skicka klientens autentiseringsuppgifter till servern för personifiering eller delegering.
- Begär serverautentisering.
- Kryptera och/eller signera data innan du skickar dem.
Autentisering måste utföras innan information överförs. Klienter begär autentisering med hjälp av synkrona AuthenticateAsClient metoder, som blockerar tills autentiseringen har slutförts, eller de asynkrona BeginAuthenticateAsClient metoderna, som inte blockeras i väntan på att autentiseringen ska slutföras. Servrar begär autentisering med hjälp av synkrona AuthenticateAsServer eller asynkrona BeginAuthenticateAsServer metoder. Klienten, och eventuellt servern, autentiseras med hjälp av säkerhetsprotokollet Negotiate. Kerberos-protokollet används för autentisering om både klienten och servern stöder det. annars används NTLM. Klassen NegotiateStream utför autentiseringen med hjälp av SSPI (Security Support Provider Interface).
När autentiseringen IsEncrypted lyckas måste du kontrollera egenskaperna och IsSigned för att avgöra vilka säkerhetstjänster som ska användas av NegotiateStream för att skydda dina data under överföringen. Kontrollera egenskapen IsMutuallyAuthenticated för att avgöra om ömsesidig autentisering har inträffat. Du kan få information om fjärrklienten eller servern med hjälp av RemoteIdentity egenskapen .
Om autentiseringen misslyckas får du en AuthenticationException eller en InvalidCredentialException. I det här fallet kan du försöka autentiseringen igen med en annan autentiseringsuppgift.
Du skickar data med hjälp av synkrona Write eller asynkrona BeginWrite metoder eller WriteAsync metoder. Du får data med hjälp av synkrona Read eller asynkrona ReadAsync eller BeginRead metoder. Om säkerhetstjänster som kryptering eller signering är aktiverade tillämpas dessa automatiskt på dina data av NegotiateStream.
Överför NegotiateStream data med hjälp av en dataström som du anger när du NegotiateStreamskapar . När du anger den underliggande dataströmmen kan du ange om stängningen NegotiateStream även stänger den underliggande strömmen.
Konstruktorer
| Name | Description |
|---|---|
| NegotiateStream(Stream, Boolean) |
Initierar en ny instans av klassen med hjälp av NegotiateStream det angivna Stream och strömmande stängningsbeteendet. |
| NegotiateStream(Stream) |
Initierar en ny instans av NegotiateStream klassen med den angivna Stream. |
Egenskaper
| Name | Description |
|---|---|
| CanRead |
Hämtar ett Boolean värde som anger om den underliggande strömmen är läsbar. |
| CanSeek |
Hämtar ett Boolean värde som anger om den underliggande dataströmmen kan sökas. |
| CanTimeout |
Hämtar ett Boolean värde som anger om den underliggande strömmen stöder tidsgränser. |
| CanWrite |
Hämtar ett Boolean värde som anger om den underliggande strömmen är skrivbar. |
| ImpersonationLevel |
Hämtar ett värde som anger hur servern kan använda klientens autentiseringsuppgifter. |
| InnerStream |
Hämtar dataströmmen som används av detta AuthenticatedStream för att skicka och ta emot data. (Ärvd från AuthenticatedStream) |
| IsAuthenticated |
Hämtar ett Boolean värde som anger om autentiseringen lyckades. |
| IsEncrypted |
Hämtar ett Boolean värde som anger om detta NegotiateStream använder datakryptering. |
| IsMutuallyAuthenticated |
Hämtar ett Boolean värde som anger om både servern och klienten har autentiserats. |
| IsServer |
Hämtar ett Boolean värde som anger om den lokala sidan av anslutningen som användes av detta NegotiateStream autentiserades som servern. |
| IsSigned |
Hämtar ett Boolean värde som anger om data som skickas med den här strömmen är signerade. |
| LeaveInnerStreamOpen |
Hämtar om dataströmmen som används av detta AuthenticatedStream för att skicka och ta emot data har lämnats öppen. (Ärvd från AuthenticatedStream) |
| Length |
Hämtar längden på den underliggande strömmen. |
| Position |
Hämtar eller anger den aktuella positionen i den underliggande strömmen. |
| ReadTimeout |
Hämtar eller anger hur lång tid en läsåtgärd blockerar väntan på data. |
| RemoteIdentity |
Hämtar information om identiteten för fjärrparten som delar den här autentiserade strömmen. |
| WriteTimeout |
Hämtar eller anger hur lång tid en skrivåtgärd blockerar väntan på data. |
Metoder
| Name | Description |
|---|---|
| AuthenticateAsClient() |
Anropas av klienter för att autentisera klienten och eventuellt servern i en klient-server-anslutning. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Anropas av klienter för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsalternativen, autentiseringsalternativen och kanalbindningen. |
| AuthenticateAsClient(NetworkCredential, ChannelBinding, String) |
Anropas av klienter för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder den angivna klientautentiseringsuppgiften och kanalbindningen. |
| AuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Anropas av klienter för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsalternativen och autentiseringsalternativen. |
| AuthenticateAsClient(NetworkCredential, String) |
Anropas av klienter för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder den angivna klientautentiseringsuppgiften. |
| AuthenticateAsClientAsync() |
Anropas av klienter för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel) |
Anropas av klienter för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder de angivna autentiseringsalternativen, autentiseringsalternativen och kanalbindningen. |
| AuthenticateAsClientAsync(NetworkCredential, ChannelBinding, String) |
Anropas av klienter för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder den angivna klientautentiseringsuppgiften och kanalbindningen. |
| AuthenticateAsClientAsync(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel) |
Anropas av klienter för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder de angivna autentiseringsalternativen och autentiseringsalternativen. |
| AuthenticateAsClientAsync(NetworkCredential, String) |
Anropas av klienter för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder den angivna klientautentiseringsuppgiften. |
| AuthenticateAsServer() |
Anropas av servrar för att autentisera klienten och eventuellt servern i en klientserveranslutning. |
| AuthenticateAsServer(ExtendedProtectionPolicy) |
Anropas av servrar för att autentisera klienten och eventuellt servern i en klientserveranslutning. Autentiseringsprocessen använder den angivna utökade skyddsprincipen. |
| AuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Anropas av servrar för att autentisera klienten och eventuellt servern i en klientserveranslutning. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna, autentiseringsalternativen och den utökade skyddsprincipen. |
| AuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Anropas av servrar för att autentisera klienten och eventuellt servern i en klientserveranslutning. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna och autentiseringsalternativen. |
| AuthenticateAsServerAsync() |
Anropas av servrar för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. |
| AuthenticateAsServerAsync(ExtendedProtectionPolicy) |
Anropas av servrar för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder den angivna utökade skyddsprincipen. |
| AuthenticateAsServerAsync(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel) |
Anropas av servrar för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna, autentiseringsalternativen och den utökade skyddsprincipen. |
| AuthenticateAsServerAsync(NetworkCredential, ProtectionLevel, TokenImpersonationLevel) |
Anropas av servrar för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning som en asynkron åtgärd. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna och autentiseringsalternativen. |
| BeginAuthenticateAsClient(AsyncCallback, Object) |
Anropas av klienter för att påbörja en asynkron åtgärd för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Den här metoden blockerar inte. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, AsyncCallback, Object) |
Anropas av klienter för att påbörja en asynkron åtgärd för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsuppgifterna och kanalbindningen. Den här metoden blockerar inte. |
| BeginAuthenticateAsClient(NetworkCredential, ChannelBinding, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Anropas av klienter för att påbörja en asynkron åtgärd för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsuppgifterna, autentiseringsalternativen och kanalbindningen. Den här metoden blockerar inte. |
| BeginAuthenticateAsClient(NetworkCredential, String, AsyncCallback, Object) |
Anropas av klienter för att påbörja en asynkron åtgärd för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsuppgifterna. Den här metoden blockerar inte. |
| BeginAuthenticateAsClient(NetworkCredential, String, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Anropas av klienter för att påbörja en asynkron åtgärd för att autentisera klienten och eventuellt servern i en klient-server-anslutning. Autentiseringsprocessen använder de angivna autentiseringsalternativen och autentiseringsalternativen. Den här metoden blockerar inte. |
| BeginAuthenticateAsServer(AsyncCallback, Object) |
Anropas av servrar för att påbörja en asynkron åtgärd för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning. Den här metoden blockerar inte. |
| BeginAuthenticateAsServer(ExtendedProtectionPolicy, AsyncCallback, Object) |
Anropas av servrar för att påbörja en asynkron åtgärd för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning. Autentiseringsprocessen använder den angivna utökade skyddsprincipen. Den här metoden blockerar inte. |
| BeginAuthenticateAsServer(NetworkCredential, ExtendedProtectionPolicy, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Anropas av servrar för att påbörja en asynkron åtgärd för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna, autentiseringsalternativen och den utökade skyddsprincipen. Den här metoden blockerar inte. |
| BeginAuthenticateAsServer(NetworkCredential, ProtectionLevel, TokenImpersonationLevel, AsyncCallback, Object) |
Anropas av servrar för att påbörja en asynkron åtgärd för att autentisera klienten, och eventuellt servern, i en klient-server-anslutning. Autentiseringsprocessen använder de angivna serverautentiseringsuppgifterna och autentiseringsalternativen. Den här metoden blockerar inte. |
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron läsåtgärd som läser data från dataströmmen och lagrar dem i den angivna matrisen. |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron skrivåtgärd som skriver Bytes från den angivna bufferten till dataströmmen. |
| Close() |
Stänger den aktuella strömmen och släpper alla resurser (till exempel socketar och filhandtag) som är associerade med den aktuella strömmen. I stället för att anropa den här metoden kontrollerar du att dataströmmen tas bort korrekt. (Ärvd från Stream) |
| CopyTo(Stream, Int32) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyTo(Stream) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, CancellationToken) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med hjälp av en angiven annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan dataström med en angiven buffertstorlek och annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| CreateWaitHandle() |
Föråldrad.
Allokerar ett WaitHandle objekt. (Ärvd från Stream) |
| Dispose() |
Släpper alla resurser som används av Stream. (Ärvd från Stream) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av NegotiateStream och släpper eventuellt de hanterade resurserna. |
| DisposeAsync() |
Asynkront släpper de ohanterade och hanterade resurser som används av NegotiateStream. |
| EndAuthenticateAsClient(IAsyncResult) |
Avslutar en väntande asynkron klientautentiseringsåtgärd som startades med ett anrop till BeginAuthenticateAsClient. |
| EndAuthenticateAsServer(IAsyncResult) |
Avslutar en väntande asynkron klientautentiseringsåtgärd som startades med ett anrop till BeginAuthenticateAsServer. |
| EndRead(IAsyncResult) |
Avslutar en asynkron läsåtgärd som startades med ett anrop till BeginRead(Byte[], Int32, Int32, AsyncCallback, Object). |
| EndWrite(IAsyncResult) |
Avslutar en asynkron skrivåtgärd som startades med ett anrop till BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object). |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Flush() |
Gör att buffrade data skrivs till den underliggande enheten. |
| FlushAsync() |
Rensar asynkront alla buffertar för den här strömmen och gör att buffrade data skrivs till den underliggande enheten. (Ärvd från Stream) |
| FlushAsync(CancellationToken) |
Skriver asynkront alla buffrade data till den underliggande enheten. |
| FlushAsync(CancellationToken) |
Rensar asynkront alla buffertar för den här strömmen, gör att buffrade data skrivs till den underliggande enheten och övervakar begäranden om annullering. (Ärvd från Stream) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| ObjectInvariant() |
Föråldrad.
Tillhandahåller stöd för en Contract. (Ärvd från Stream) |
| Read(Byte[], Int32, Int32) |
Läser data från den här strömmen och lagrar dem i den angivna matrisen. |
| Read(Span<Byte>) |
När den åsidosätts i en härledd klass läser du en sekvens med byte från den aktuella strömmen och flyttar fram positionen i dataströmmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Läser asynkront en sekvens med byte från den aktuella strömmen och avancerar positionen i strömmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadByte() |
Läser en byte från strömmen och flyttar positionen i strömmen med en byte, eller returnerar -1 om i slutet av strömmen. (Ärvd från Stream) |
| Seek(Int64, SeekOrigin) |
Kastar NotSupportedException. |
| SetLength(Int64) |
Anger längden på den underliggande strömmen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| Write(Byte[], Int32, Int32) |
Skriv det angivna antalet Bytes till den underliggande strömmen med den angivna bufferten och förskjutningen. |
| Write(ReadOnlySpan<Byte>) |
När den åsidosätts i en härledd klass skriver du en sekvens med byte till den aktuella strömmen och flyttar fram den aktuella positionen i den här strömmen med antalet skrivna byte. (Ärvd från Stream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte. (Ärvd från Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| WriteByte(Byte) |
Skriver en byte till den aktuella positionen i strömmen och flyttar positionen inom strömmen med en byte. (Ärvd från Stream) |
Tilläggsmetoder
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfigurerar hur väntar på de uppgifter som returneras från en asynkron disponibel ska utföras. |