SslStream Konstruktorer
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.
Initierar en ny instans av SslStream klassen.
Överlagringar
| Name | Description |
|---|---|
| SslStream(Stream) |
Initierar en ny instans av SslStream klassen med den angivna Stream. |
| SslStream(Stream, Boolean) |
Initierar en ny instans av klassen med hjälp av SslStream det angivna Stream och strömmande stängningsbeteendet. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback) |
Initierar en ny instans av klassen med hjälp av det angivna beteendet SslStreamför stängning av Stream dataström och certifikatverifieringsdelegat. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback) |
Initierar en ny instans av klassen med hjälp av det angivna beteendet SslStreamför stängning av dataström, certifikatverifieringsdelegat och ombud för val av Stream certifikat. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy) |
Initierar en ny instans av SslStream klassen med den angivna Stream. |
Kommentarer
Om du vill förhindra att SslStream dataströmmen som du anger stängs använder SslStream du konstruktorn.
SslStream(Stream)
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
public:
SslStream(System::IO::Stream ^ innerStream);
public SslStream(System.IO.Stream innerStream);
new System.Net.Security.SslStream : System.IO.Stream -> System.Net.Security.SslStream
Public Sub New (innerStream As Stream)
Parametrar
Undantag
Kommentarer
Om ett värde inte anges i konfigurationsfilen EncryptionPolicy för krypteringspolicyn är EncryptionPolicy.RequireEncryption standardvärdet för den SslStream instans som är konstruerad.
Användning av Null-chiffer krävs när krypteringsprincipen är inställd på EncryptionPolicy.NoEncryption.
Gäller för
SslStream(Stream, Boolean)
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
public:
SslStream(System::IO::Stream ^ innerStream, bool leaveInnerStreamOpen);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen);
new System.Net.Security.SslStream : System.IO.Stream * bool -> System.Net.Security.SslStream
Public Sub New (innerStream As Stream, leaveInnerStreamOpen As Boolean)
Parametrar
- leaveInnerStreamOpen
- Boolean
Ett booleskt värde som anger stängningsbeteendet för objektet Stream som används för SslStream att skicka och ta emot data. Den här parametern anger om den inre strömmen lämnas öppen.
Undantag
Exempel
Följande kodexempel visar hur du anropar den här konstruktorn.
static void ProcessClient (TcpClient client)
{
// A client has connected. Create the
// SslStream using the client's network stream.
SslStream sslStream = new SslStream(
client.GetStream(), false);
// Authenticate the server but don't require the client to authenticate.
try
{
sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);
// Display the properties and settings for the authenticated stream.
DisplaySecurityLevel(sslStream);
DisplaySecurityServices(sslStream);
DisplayCertificateInformation(sslStream);
DisplayStreamProperties(sslStream);
// Set timeouts for the read and write to 5 seconds.
sslStream.ReadTimeout = 5000;
sslStream.WriteTimeout = 5000;
// Read a message from the client.
Console.WriteLine("Waiting for client message...");
string messageData = ReadMessage(sslStream);
Console.WriteLine("Received: {0}", messageData);
// Write a message to the client.
byte[] message = Encoding.UTF8.GetBytes("Hello from the server.<EOF>");
Console.WriteLine("Sending hello message.");
sslStream.Write(message);
}
catch (AuthenticationException e)
{
Console.WriteLine("Exception: {0}", e.Message);
if (e.InnerException != null)
{
Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
}
Console.WriteLine ("Authentication failed - closing the connection.");
sslStream.Close();
client.Close();
return;
}
finally
{
// The client stream will be closed with the sslStream
// because we specified this behavior when creating
// the sslStream.
sslStream.Close();
client.Close();
}
}
Private Shared Sub ProcessClient(client As TcpClient)
' A client has connected. Create the
' SslStream using the client's network stream.
Dim sslStream = New SslStream(client.GetStream(), False)
Try
sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired:=False, checkCertificateRevocation:=True)
' Display the properties And settings for the authenticated stream.
DisplaySecurityLevel(sslStream)
DisplaySecurityServices(sslStream)
DisplayCertificateInformation(sslStream)
DisplayStreamProperties(sslStream)
' Set timeouts for the read and write to 5 seconds.
sslStream.ReadTimeout = 5000
sslStream.WriteTimeout = 5000
' Read a message from the client.
Console.WriteLine("Waiting for client message...")
Dim messageData As String = ReadMessage(sslStream)
Console.WriteLine("Received: {0}", messageData)
' Write a message to the client.
Dim message As Byte() = Encoding.UTF8.GetBytes("Hello from the server.<EOF>")
Console.WriteLine("Sending hello message.")
sslStream.Write(message)
Catch e As AuthenticationException
Console.WriteLine("Exception: {0}", e.Message)
If e.InnerException IsNot Nothing Then
Console.WriteLine("Inner exception: {0}", e.InnerException.Message)
End If
Console.WriteLine("Authentication failed - closing the connection.")
sslStream.Close()
client.Close()
Return
Finally
' The client stream will be closed with the sslStream
' because we specified this behavior when creating
' the sslStream.
sslStream.Close()
client.Close()
End Try
End Sub
Kommentarer
När du anger true för parametern leaveStreamOpen har stängningen SslStream inte någon effekt på innerStream strömmen. Du måste uttryckligen stänga innerStream när du inte längre behöver den.
Om ett värde inte anges i konfigurationsfilen EncryptionPolicy för krypteringspolicyn är EncryptionPolicy.RequireEncryption standardvärdet för den SslStream instans som är konstruerad.
Användning av Null-chiffer krävs när krypteringsprincipen är inställd på EncryptionPolicy.NoEncryption.
Gäller för
SslStream(Stream, Boolean, RemoteCertificateValidationCallback)
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
public:
SslStream(System::IO::Stream ^ innerStream, bool leaveInnerStreamOpen, System::Net::Security::RemoteCertificateValidationCallback ^ userCertificateValidationCallback);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback);
new System.Net.Security.SslStream : System.IO.Stream * bool * System.Net.Security.RemoteCertificateValidationCallback -> System.Net.Security.SslStream
Public Sub New (innerStream As Stream, leaveInnerStreamOpen As Boolean, userCertificateValidationCallback As RemoteCertificateValidationCallback)
Parametrar
- leaveInnerStreamOpen
- Boolean
Ett booleskt värde som anger stängningsbeteendet för objektet Stream som används för SslStream att skicka och ta emot data. Den här parametern anger om den inre strömmen lämnas öppen.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
Ett RemoteCertificateValidationCallback ombud som ansvarar för att verifiera certifikatet som tillhandahålls av fjärrparten.
Undantag
Exempel
I följande kodexempel skapas en SslStream och initieras klientdelen av autentiseringen.
// Create a TCP/IP client socket.
// machineName is the host running the server application.
TcpClient client = new TcpClient(machineName,5000);
Console.WriteLine("Client connected.");
// Create an SSL stream that will close the client's stream.
SslStream sslStream = new SslStream(
client.GetStream(),
false,
new RemoteCertificateValidationCallback (ValidateServerCertificate),
null
);
// The server name must match the name on the server certificate.
try
{
sslStream.AuthenticateAsClient(serverName);
}
catch (AuthenticationException e)
{
Console.WriteLine("Exception: {0}", e.Message);
if (e.InnerException != null)
{
Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
}
Console.WriteLine ("Authentication failed - closing the connection.");
client.Close();
return;
}
' Create a TCP/IP client socket.
' machineName is the host running the server application.
Dim client = New TcpClient(machineName, 5000)
Console.WriteLine("Client connected.")
' Create an SSL stream that will close the client's stream.
Dim sslStream = New SslStream(
client.GetStream(), False,
New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate), Nothing)
' The server name must match the name on the server certificate.
Try
sslStream.AuthenticateAsClient(serverName)
Catch e As AuthenticationException
Console.WriteLine("Exception: {0}", e.Message)
If e.InnerException IsNot Nothing Then
Console.WriteLine("Inner exception: {0}", e.InnerException.Message)
End If
Console.WriteLine("Authentication failed - closing the connection.")
client.Close()
Return
End Try
Kommentarer
När du anger true för parametern leaveStreamOpen har stängningen SslStream inte någon effekt på innerStream strömmen. Du måste uttryckligen stänga innerStream när du inte längre behöver den.
Argumentet userCertificateValidationCallback ombudet certificateErrors innehåller eventuella Windows felkoder som returneras av SSPI (Security Support Provider Interface). Returvärdet för den metod som anropas av ombudet userCertificateValidationCallback avgör om autentiseringen lyckas.
Säkerhetsprotokollet och kryptografiska algoritmer har redan valts när ombudets userCertificateValidationCallback metod anropas. Du kan använda metoden för att avgöra om de valda kryptografiska algoritmerna och styrkorna är tillräckliga för ditt program. Annars bör metoden returneras false för att förhindra att den SslStream skapas.
Om ett värde inte anges i konfigurationsfilen EncryptionPolicy för krypteringspolicyn är EncryptionPolicy.RequireEncryption standardvärdet för den SslStream instans som är konstruerad.
Användning av Null-chiffer krävs när krypteringsprincipen är inställd på EncryptionPolicy.NoEncryption.
Note
.NET cachelagrar SSL-sessioner när de skapas och försöker återanvända en cachelagrad session för efterföljande begäranden, om möjligt. När du försöker återanvända en SSL-session använder ramverket det första elementet i den tillhandahållna under autentiseringen X509Certificate2Collection (om det finns en) eller försöker återanvända en anonym session om certifikatsamlingen är tom.
Note
Klientcertifikat stöds inte i SSL version 2-protokollet.
Gäller för
SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback)
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
public:
SslStream(System::IO::Stream ^ innerStream, bool leaveInnerStreamOpen, System::Net::Security::RemoteCertificateValidationCallback ^ userCertificateValidationCallback, System::Net::Security::LocalCertificateSelectionCallback ^ userCertificateSelectionCallback);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback? userCertificateSelectionCallback);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback);
new System.Net.Security.SslStream : System.IO.Stream * bool * System.Net.Security.RemoteCertificateValidationCallback * System.Net.Security.LocalCertificateSelectionCallback -> System.Net.Security.SslStream
Public Sub New (innerStream As Stream, leaveInnerStreamOpen As Boolean, userCertificateValidationCallback As RemoteCertificateValidationCallback, userCertificateSelectionCallback As LocalCertificateSelectionCallback)
Parametrar
- leaveInnerStreamOpen
- Boolean
Ett booleskt värde som anger stängningsbeteendet för objektet Stream som används för SslStream att skicka och ta emot data. Den här parametern anger om den inre strömmen lämnas öppen.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
Ett RemoteCertificateValidationCallback ombud som ansvarar för att verifiera certifikatet som tillhandahålls av fjärrparten.
- userCertificateSelectionCallback
- LocalCertificateSelectionCallback
Ett LocalCertificateSelectionCallback ombud som ansvarar för att välja det certifikat som används för autentisering.
Undantag
Exempel
Följande kodexempel visar hur du anropar den här konstruktorn. Det här exemplet är en del av ett större exempel som tillhandahålls SslStream för klassen.
// Server name must match the host name and the name on the host's certificate.
serverName = args[0];
// Create a TCP/IP client socket.
TcpClient client = new TcpClient(serverName,5000);
Console.WriteLine("Client connected.");
// Create an SSL stream that will close the client's stream.
SslStream sslStream = new SslStream(
client.GetStream(),
false,
new RemoteCertificateValidationCallback (ValidateServerCertificate),
new LocalCertificateSelectionCallback(SelectLocalCertificate)
);
' Server name must match the host name and the name on the host's certificate.
serverName = args(0)
' Create a TCP/IP client socket.
Dim client As New TcpClient(serverName, 5000)
Console.WriteLine("Client connected.")
' Create an SSL stream that will close the client's stream.
Dim sslStream As New SslStream(
client.GetStream(), False,
New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate),
New LocalCertificateSelectionCallback(AddressOf SelectLocalCertificate))
Kommentarer
När du anger true för parametern leaveStreamOpen har stängningen SslStream inte någon effekt på innerStream strömmen. Du måste uttryckligen stänga innerStream när du inte längre behöver den.
Argumentet userCertificateValidationCallback ombudet certificateErrors innehåller eventuella Windows felkoder som returneras av SSPI (Security Support Provider Interface). Returvärdet för den metod som anropas av ombudet userCertificateValidationCallback avgör om autentiseringen lyckas.
Säkerhetsprotokollet och kryptografiska algoritmer har redan valts när ombudets userCertificateValidationCallback metod anropas. Du kan använda metoden för att avgöra om de valda kryptografiska algoritmerna och styrkorna är tillräckliga för ditt program. Annars bör metoden returneras false för att förhindra att den SslStream skapas.
Ombudet userCertificateSelectionCallback är användbart när programmet har flera certifikat och måste välja ett certifikat dynamiskt. Certifikat i "MY"-arkivet skickas till den metod som anropas av ombudet.
Om ett värde inte anges i konfigurationsfilen EncryptionPolicy för krypteringspolicyn är EncryptionPolicy.RequireEncryption standardvärdet för den SslStream instans som är konstruerad.
Användning av Null-chiffer krävs när krypteringsprincipen är inställd på EncryptionPolicy.NoEncryption.
Note
.NET cachelagrar SSL-sessioner när de skapas och försöker återanvända en cachelagrad session för efterföljande begäranden, om möjligt. När du försöker återanvända en SSL-session använder ramverket det första elementet i den tillhandahållna under autentiseringen X509Certificate2Collection (om det finns en) eller försöker återanvända en anonym session om certifikatsamlingen är tom.
Gäller för
SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy)
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.IO.cs
- Källa:
- SslStream.cs
- Källa:
- SslStream.cs
public:
SslStream(System::IO::Stream ^ innerStream, bool leaveInnerStreamOpen, System::Net::Security::RemoteCertificateValidationCallback ^ userCertificateValidationCallback, System::Net::Security::LocalCertificateSelectionCallback ^ userCertificateSelectionCallback, System::Net::Security::EncryptionPolicy encryptionPolicy);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback? userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy);
public SslStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy);
new System.Net.Security.SslStream : System.IO.Stream * bool * System.Net.Security.RemoteCertificateValidationCallback * System.Net.Security.LocalCertificateSelectionCallback * System.Net.Security.EncryptionPolicy -> System.Net.Security.SslStream
Public Sub New (innerStream As Stream, leaveInnerStreamOpen As Boolean, userCertificateValidationCallback As RemoteCertificateValidationCallback, userCertificateSelectionCallback As LocalCertificateSelectionCallback, encryptionPolicy As EncryptionPolicy)
Parametrar
- leaveInnerStreamOpen
- Boolean
Ett booleskt värde som anger stängningsbeteendet för objektet Stream som används för SslStream att skicka och ta emot data. Den här parametern anger om den inre strömmen lämnas öppen.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
Ett RemoteCertificateValidationCallback ombud som ansvarar för att verifiera certifikatet som tillhandahålls av fjärrparten.
- userCertificateSelectionCallback
- LocalCertificateSelectionCallback
Ett LocalCertificateSelectionCallback ombud som ansvarar för att välja det certifikat som används för autentisering.
- encryptionPolicy
- EncryptionPolicy
Att EncryptionPolicy använda.
Undantag
innerStream är inte läsbar.
-eller-
innerStream är inte skrivbar.
-eller-
encryptionPolicy är ogiltigt.
Kommentarer
Användning av Null-chiffer krävs när parametern encryptionPolicy är inställd på EncryptionPolicy.NoEncryption.