SslStream Konstruktorok
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Inicializálja a SslStream osztály új példányát.
Túlterhelések
| Name | Description |
|---|---|
| SslStream(Stream) |
Inicializálja az osztály új példányát a SslStream megadott Streamhasználatával. |
| SslStream(Stream, Boolean) |
Inicializálja az osztály új példányát a SslStream megadott Stream és streamlezárási viselkedéssel. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback) |
Inicializálja az osztály új példányát a SslStream megadott Stream, streamlezárási viselkedés és tanúsítványérvényesítési meghatalmazott használatával. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback) |
Inicializálja az osztály új példányát a SslStream megadott Stream, streamlezárási viselkedés, tanúsítványérvényesítési delegált és tanúsítványkijelölési meghatalmazott használatával. |
| SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy) |
Inicializálja az osztály új példányát a SslStream megadott Streamhasználatával. |
Megjegyzések
A konstruktor használatával megakadályozhatja SslStream , hogy bezárja a SslStream megadott streamet.
SslStream(Stream)
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- 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)
Paraméterek
Kivételek
Megjegyzések
Ha a titkosítási házirend konfigurációs EncryptionPolicyEncryptionPolicy.RequireEncryption fájljában nincs megadva érték, akkor a SslStream létrehozott példány alapértelmezett értéke.
A null titkosítási szabályzat EncryptionPolicy.NoEncryptionbeállításakor a Null titkosítás használata szükséges.
A következőre érvényes:
SslStream(Stream, Boolean)
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- 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)
Paraméterek
- leaveInnerStreamOpen
- Boolean
Logikai érték, amely az adatok küldéséhez és fogadásához használt objektum bezárási viselkedését StreamSslStream jelzi. Ez a paraméter azt jelzi, hogy a belső stream nyitva van-e.
Kivételek
Példák
Az alábbi példakód bemutatja a konstruktor meghívását.
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
Megjegyzések
Amikor megadja true a leaveStreamOpen paramétert, a SslStream lezárásnak nincs hatása a innerStream streamre; explicit módon be kell zárnia innerStream , ha már nincs rá szüksége.
Ha a titkosítási házirend konfigurációs EncryptionPolicyEncryptionPolicy.RequireEncryption fájljában nincs megadva érték, akkor a SslStream létrehozott példány alapértelmezett értéke.
A null titkosítási szabályzat EncryptionPolicy.NoEncryptionbeállításakor a Null titkosítás használata szükséges.
A következőre érvényes:
SslStream(Stream, Boolean, RemoteCertificateValidationCallback)
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- 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)
Paraméterek
- leaveInnerStreamOpen
- Boolean
Logikai érték, amely az adatok küldéséhez és fogadásához használt objektum bezárási viselkedését StreamSslStream jelzi. Ez a paraméter azt jelzi, hogy a belső stream nyitva van-e.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
A RemoteCertificateValidationCallback távoli fél által megadott tanúsítvány érvényesítéséért felelős meghatalmazott.
Kivételek
Példák
Az alábbi példakód létrehozza SslStream és elindítja a hitelesítés ügyfélrészét.
// 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
Megjegyzések
Amikor megadja true a leaveStreamOpen paramétert, a SslStream lezárásnak nincs hatása a innerStream streamre; explicit módon be kell zárnia innerStream , ha már nincs rá szüksége.
A userCertificateValidationCallback meghatalmazott certificateErrors argumentuma tartalmazza a csatorna biztonsági támogatási szolgáltatói felülete (SSPI) által visszaadott Windows hibakódot. A meghatalmazott által meghívott metódus visszatérési értéke határozza meg, hogy a userCertificateValidationCallback hitelesítés sikeres-e.
A rendszer már kiválasztja a biztonsági protokollt és a titkosítási algoritmusokat a userCertificateValidationCallback meghatalmazott metódusának meghívásakor. Ezzel a módszerrel megállapíthatja, hogy a kiválasztott titkosítási algoritmusok és erősségek elegendőek-e az alkalmazáshoz. Ha nem, a metódusnak vissza kell térnie false , hogy megakadályozza a SslStream létrehozást.
Ha a titkosítási házirend konfigurációs EncryptionPolicyEncryptionPolicy.RequireEncryption fájljában nincs megadva érték, akkor a SslStream létrehozott példány alapértelmezett értéke.
A null titkosítási szabályzat EncryptionPolicy.NoEncryptionbeállításakor a Null titkosítás használata szükséges.
Note
.NET létrehozásukkor gyorsítótárazza az SSL-munkameneteket, és lehetőség szerint megpróbálja újra felhasználni a gyorsítótárazott munkamenetet a későbbi kérésekhez. Az SSL-munkamenetek újrafelhasználásakor a keretrendszer a hitelesítés során megadott első elemet X509Certificate2Collection használja (ha van ilyen), vagy névtelen munkameneteket próbál újra felhasználni, ha a tanúsítványgyűjtemény üres.
Note
Az SSL 2-es verziójának protokollja nem támogatja az ügyféltanúsítványokat.
A következőre érvényes:
SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback)
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- 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)
Paraméterek
- leaveInnerStreamOpen
- Boolean
Logikai érték, amely az adatok küldéséhez és fogadásához használt objektum bezárási viselkedését StreamSslStream jelzi. Ez a paraméter azt jelzi, hogy a belső stream nyitva van-e.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
A RemoteCertificateValidationCallback távoli fél által megadott tanúsítvány érvényesítéséért felelős meghatalmazott.
- userCertificateSelectionCallback
- LocalCertificateSelectionCallback
A LocalCertificateSelectionCallback hitelesítéshez használt tanúsítvány kiválasztásáért felelős meghatalmazott.
Kivételek
Példák
Az alábbi példakód bemutatja a konstruktor meghívását. Ez a példa egy nagyobb, az SslStream osztályhoz tartozó példa része.
// 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))
Megjegyzések
Amikor megadja true a leaveStreamOpen paramétert, a SslStream lezárásnak nincs hatása a innerStream streamre; explicit módon be kell zárnia innerStream , ha már nincs rá szüksége.
A userCertificateValidationCallback meghatalmazott certificateErrors argumentuma tartalmazza a csatorna biztonsági támogatási szolgáltatói felülete (SSPI) által visszaadott Windows hibakódot. A meghatalmazott által meghívott metódus visszatérési értéke határozza meg, hogy a userCertificateValidationCallback hitelesítés sikeres-e.
A rendszer már kiválasztja a biztonsági protokollt és a titkosítási algoritmusokat a userCertificateValidationCallback meghatalmazott metódusának meghívásakor. Ezzel a módszerrel megállapíthatja, hogy a kiválasztott titkosítási algoritmusok és erősségek elegendőek-e az alkalmazáshoz. Ha nem, a metódusnak vissza kell térnie false , hogy megakadályozza a SslStream létrehozást.
A userCertificateSelectionCallback meghatalmazott akkor hasznos, ha az alkalmazás több tanúsítvánnyal rendelkezik, és dinamikusan ki kell választania egy tanúsítványt. A "MY" tárolóban lévő tanúsítványok a meghatalmazott által meghívott metódusnak lesznek átadva.
Ha a titkosítási házirend konfigurációs EncryptionPolicyEncryptionPolicy.RequireEncryption fájljában nincs megadva érték, akkor a SslStream létrehozott példány alapértelmezett értéke.
A null titkosítási szabályzat EncryptionPolicy.NoEncryptionbeállításakor a Null titkosítás használata szükséges.
Note
.NET létrehozásukkor gyorsítótárazza az SSL-munkameneteket, és lehetőség szerint megpróbálja újra felhasználni a gyorsítótárazott munkamenetet a későbbi kérésekhez. Az SSL-munkamenetek újrafelhasználásakor a keretrendszer a hitelesítés során megadott első elemet X509Certificate2Collection használja (ha van ilyen), vagy névtelen munkameneteket próbál újra felhasználni, ha a tanúsítványgyűjtemény üres.
A következőre érvényes:
SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy)
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.cs
- Forrás:
- SslStream.IO.cs
- Forrás:
- SslStream.cs
- Forrás:
- 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)
Paraméterek
- leaveInnerStreamOpen
- Boolean
Logikai érték, amely az adatok küldéséhez és fogadásához használt objektum bezárási viselkedését StreamSslStream jelzi. Ez a paraméter azt jelzi, hogy a belső stream nyitva van-e.
- userCertificateValidationCallback
- RemoteCertificateValidationCallback
A RemoteCertificateValidationCallback távoli fél által megadott tanúsítvány érvényesítéséért felelős meghatalmazott.
- userCertificateSelectionCallback
- LocalCertificateSelectionCallback
A LocalCertificateSelectionCallback hitelesítéshez használt tanúsítvány kiválasztásáért felelős meghatalmazott.
- encryptionPolicy
- EncryptionPolicy
A EncryptionPolicy használni kívánt.
Kivételek
innerStream nem olvasható.
-vagy-
innerStream nem írható.
-vagy-
encryptionPolicy érvénytelen.
Megjegyzések
A null titkosítás használatára akkor van szükség, ha a encryptionPolicy paraméter értéke EncryptionPolicy.NoEncryption.