Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore SslStream (Stream, Boolean)

 

Data di pubblicazione: ottobre 2016

Inizializza una nuova istanza di SslStream classe utilizzando l'oggetto specificato Stream e il comportamento di chiusura del flusso.

Spazio dei nomi:   System.Net.Security
Assembly:  System (in System.dll)

public SslStream(
	Stream innerStream,
	bool leaveInnerStreamOpen
)

Parametri

innerStream
Type: System.IO.Stream

Oggetto Stream oggetto utilizzato per il SslStream per l'invio e ricezione di dati.

leaveInnerStreamOpen
Type: System.Boolean

Un valore booleano che indica il comportamento di chiusura del Stream oggetto utilizzato per il SslStream per l'invio e ricezione di dati. Questo parametro indica se il flusso interno viene lasciato aperto.

Exception Condition
ArgumentException

innerStream non è leggibile.

-oppure-

innerStream non è scrivibile.

ArgumentNullException

innerStream è null.

-oppure-

innerStream è uguale a Null.

Quando si specifica true per il leaveStreamOpen parametro, la chiusura di SslStream non ha alcun effetto innerStream flusso; è necessario chiudere esplicitamente innerStream quando non è più necessario.

Se non viene specificato un valore nel file di configurazione per encryptionpolicy, il EncryptionPolicy per impostazione predefinita EncryptionPolicy.RequireEncryption per il SslStream istanza costruita.

L'utilizzo della crittografia Null è richiesto quando i criteri di crittografia sono impostato su EncryptionPolicy.NoEncryption.

Esempio di codice riportato di seguito viene illustrato come chiamare questo costruttore.

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, 
            false, SslProtocols.Tls, 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();
    }
}

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: