Lire en anglais

Partager via


SslStream Constructeurs

Définition

Initialise une nouvelle instance de la classe SslStream.

Surcharges

SslStream(Stream)

Initialise une nouvelle instance de la classe SslStream à l'aide du Stream spécifié.

SslStream(Stream, Boolean)

Initialise une nouvelle instance de la classe SslStream en utilisant le Stream et le comportement de clôture de flux spécifiés.

SslStream(Stream, Boolean, RemoteCertificateValidationCallback)

Initialise une nouvelle instance de la classe SslStream en utilisant Stream, le comportement de clôture de flux et le délégué de validation de certificat spécifiés.

SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback)

Initialise une nouvelle instance de la classe SslStream en utilisant Stream, le comportement de clôture de flux, le délégué de validation de certificat et le délégué de sélection de certificat spécifiés.

SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy)

Initialise une nouvelle instance de la classe SslStream à l'aide du Stream spécifié.

Remarques

Pour empêcher la SslStream fermeture du flux que vous fournissez, utilisez le SslStream constructeur .

SslStream(Stream)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Initialise une nouvelle instance de la classe SslStream à l'aide du Stream spécifié.

C#
public SslStream (System.IO.Stream innerStream);

Paramètres

innerStream
Stream

Objet Stream utilisé par SslStream pour envoyer et recevoir des données.

Exceptions

innerStream n’est pas accessible en lecture.

- ou -

innerStream n’est pas accessible en écriture.

innerStream a la valeur null.

- ou -

innerStream est égal à Null.

Remarques

Si aucune valeur n’est spécifiée dans le fichier de configuration pour encryptionpolicy, la EncryptionPolicy valeur par défaut EncryptionPolicy.RequireEncryption est pour le SslStream instance qui est construit.

L’utilisation du chiffrement Null est requise lorsque la stratégie de chiffrement est définie sur EncryptionPolicy.NoEncryption.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SslStream(Stream, Boolean)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Initialise une nouvelle instance de la classe SslStream en utilisant le Stream et le comportement de clôture de flux spécifiés.

C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen);

Paramètres

innerStream
Stream

Objet Stream utilisé par SslStream pour envoyer et recevoir des données.

leaveInnerStreamOpen
Boolean

Valeur booléenne qui indique le comportement de fermeture de l'objet Stream utilisé par SslStream pour l'envoi et la réception de données. Ce paramètre indique si le flux interne est resté ouvert.

Exceptions

innerStream n’est pas accessible en lecture.

- ou -

innerStream n’est pas accessible en écriture.

innerStream a la valeur null.

- ou -

innerStream est égal à Null.

Exemples

L’exemple de code suivant illustre l’appel de ce constructeur.

C#
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();
    }
}

Remarques

Lorsque vous spécifiez true pour le paramètre, la leaveStreamOpen fermeture du SslStream n’a aucun effet sur le innerStream flux ; vous devez fermer innerStream explicitement lorsque vous n’en avez plus besoin.

Si aucune valeur n’est spécifiée dans le fichier de configuration pour encryptionpolicy, la EncryptionPolicy valeur par défaut EncryptionPolicy.RequireEncryption est pour le SslStream instance qui est construit.

L’utilisation du chiffrement Null est requise lorsque la stratégie de chiffrement est définie sur EncryptionPolicy.NoEncryption.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SslStream(Stream, Boolean, RemoteCertificateValidationCallback)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Initialise une nouvelle instance de la classe SslStream en utilisant Stream, le comportement de clôture de flux et le délégué de validation de certificat spécifiés.

C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback);
C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback);

Paramètres

innerStream
Stream

Objet Stream utilisé par SslStream pour envoyer et recevoir des données.

leaveInnerStreamOpen
Boolean

Valeur booléenne qui indique le comportement de fermeture de l'objet Stream utilisé par SslStream pour l'envoi et la réception de données. Ce paramètre indique si le flux interne est resté ouvert.

userCertificateValidationCallback
RemoteCertificateValidationCallback

Délégué RemoteCertificateValidationCallback responsable de la validation du certificat fourni par le tiers distant.

Exceptions

innerStream n’est pas accessible en lecture.

- ou -

innerStream n’est pas accessible en écriture.

innerStream a la valeur null.

- ou -

innerStream est égal à Null.

Exemples

L’exemple de code suivant crée un SslStream et lance la partie client de l’authentification.

C#
// 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;
}

Remarques

Lorsque vous spécifiez true pour le paramètre, la leaveStreamOpen fermeture du SslStream n’a aucun effet sur le innerStream flux ; vous devez fermer innerStream explicitement lorsque vous n’en avez plus besoin.

L’argument userCertificateValidationCallback du certificateErrors délégué contient tous les codes d’erreur Windows retournés par l’interface SSPI (Security Support Provider Interface) du canal. La valeur de retour de la méthode appelée par le délégué détermine si l’authentification userCertificateValidationCallback réussit.

Le protocole de sécurité et les algorithmes de chiffrement sont déjà sélectionnés lorsque la userCertificateValidationCallback méthode du délégué est appelée. Vous pouvez utiliser la méthode pour déterminer si les algorithmes de chiffrement et les forces sélectionnés sont suffisants pour votre application. Si ce n’est pas le cas, la méthode doit revenir false pour empêcher la SslStream création de .

Si aucune valeur n’est spécifiée dans le fichier de configuration pour encryptionpolicy, la EncryptionPolicy valeur par défaut EncryptionPolicy.RequireEncryption est pour le SslStream instance qui est construit.

L’utilisation du chiffrement Null est requise lorsque la stratégie de chiffrement est définie sur EncryptionPolicy.NoEncryption.

Note

.NET met en cache les sessions SSL au fur et à mesure qu’elles sont créées et tente de réutiliser une session mise en cache pour les requêtes suivantes, si possible. Lors de la tentative de réutilisation d’une session SSL, l’infrastructure utilise le premier élément du fourni lors de l’authentification X509Certificate2Collection (le cas échéant) ou tente de réutiliser une session anonyme si la collection de certificats est vide.

Note

Les certificats clients ne sont pas pris en charge dans le protocole SSL version 2.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Initialise une nouvelle instance de la classe SslStream en utilisant Stream, le comportement de clôture de flux, le délégué de validation de certificat et le délégué de sélection de certificat spécifiés.

C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback? userCertificateSelectionCallback);
C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback);

Paramètres

innerStream
Stream

Objet Stream utilisé par SslStream pour envoyer et recevoir des données.

leaveInnerStreamOpen
Boolean

Valeur booléenne qui indique le comportement de fermeture de l'objet Stream utilisé par SslStream pour l'envoi et la réception de données. Ce paramètre indique si le flux interne est resté ouvert.

userCertificateValidationCallback
RemoteCertificateValidationCallback

Délégué RemoteCertificateValidationCallback responsable de la validation du certificat fourni par le tiers distant.

userCertificateSelectionCallback
LocalCertificateSelectionCallback

Délégué LocalCertificateSelectionCallback responsable de la sélection du certificat utilisé pour l'authentification.

Exceptions

innerStream n’est pas accessible en lecture.

- ou -

innerStream n’est pas accessible en écriture.

innerStream a la valeur null.

- ou -

innerStream est égal à Null.

Exemples

L’exemple de code suivant illustre l’appel de ce constructeur. Cet exemple fait partie d’un exemple plus grand fourni pour la SslStream classe .

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

Remarques

Lorsque vous spécifiez true pour le paramètre, la leaveStreamOpen fermeture du SslStream n’a aucun effet sur le innerStream flux ; vous devez fermer innerStream explicitement lorsque vous n’en avez plus besoin.

L’argument userCertificateValidationCallback du certificateErrors délégué contient tous les codes d’erreur Windows retournés par l’interface SSPI (Security Support Provider Interface) du canal. La valeur de retour de la méthode appelée par le délégué détermine si l’authentification userCertificateValidationCallback réussit.

Le protocole de sécurité et les algorithmes de chiffrement sont déjà sélectionnés lorsque la userCertificateValidationCallback méthode du délégué est appelée. Vous pouvez utiliser la méthode pour déterminer si les algorithmes de chiffrement et les forces sélectionnés sont suffisants pour votre application. Si ce n’est pas le cas, la méthode doit revenir false pour empêcher la SslStream création de .

Le userCertificateSelectionCallback délégué est utile lorsque votre application a plusieurs certificats et doit choisir dynamiquement un certificat. Les certificats dans le magasin « MY » sont passés à la méthode appelée par le délégué.

Si aucune valeur n’est spécifiée dans le fichier de configuration pour encryptionpolicy, la EncryptionPolicy valeur par défaut EncryptionPolicy.RequireEncryption est pour le SslStream instance qui est construit.

L’utilisation du chiffrement Null est requise lorsque la stratégie de chiffrement est définie sur EncryptionPolicy.NoEncryption.

Note

.NET met en cache les sessions SSL au fur et à mesure qu’elles sont créées et tente de réutiliser une session mise en cache pour les requêtes suivantes, si possible. Lors de la tentative de réutilisation d’une session SSL, l’infrastructure utilise le premier élément du fourni lors de l’authentification X509Certificate2Collection (le cas échéant) ou tente de réutiliser une session anonyme si la collection de certificats est vide.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SslStream(Stream, Boolean, RemoteCertificateValidationCallback, LocalCertificateSelectionCallback, EncryptionPolicy)

Source:
SslStream.IO.cs
Source:
SslStream.cs
Source:
SslStream.cs

Initialise une nouvelle instance de la classe SslStream à l'aide du Stream spécifié.

C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback? userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback? userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy);
C#
public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, System.Net.Security.RemoteCertificateValidationCallback userCertificateValidationCallback, System.Net.Security.LocalCertificateSelectionCallback userCertificateSelectionCallback, System.Net.Security.EncryptionPolicy encryptionPolicy);

Paramètres

innerStream
Stream

Objet Stream utilisé par SslStream pour envoyer et recevoir des données.

leaveInnerStreamOpen
Boolean

Valeur booléenne qui indique le comportement de fermeture de l'objet Stream utilisé par SslStream pour l'envoi et la réception de données. Ce paramètre indique si le flux interne est resté ouvert.

userCertificateValidationCallback
RemoteCertificateValidationCallback

Délégué RemoteCertificateValidationCallback responsable de la validation du certificat fourni par le tiers distant.

userCertificateSelectionCallback
LocalCertificateSelectionCallback

Délégué LocalCertificateSelectionCallback responsable de la sélection du certificat utilisé pour l'authentification.

encryptionPolicy
EncryptionPolicy

EncryptionPolicy à utiliser.

Exceptions

innerStream n’est pas accessible en lecture.

- ou -

innerStream n’est pas accessible en écriture.

- ou -

encryptionPolicy n'est pas valide.

innerStream a la valeur null.

- ou -

innerStream est égal à Null.

Remarques

L’utilisation du chiffrement Null est requise lorsque le paramètre a la encryptionPolicy valeur EncryptionPolicy.NoEncryption.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1