SslStream Konstruktorer

Definition

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

Initierar en ny instans av SslStream klassen med den angivna Stream.

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

innerStream
Stream

Ett Stream objekt som används av SslStream för att skicka och ta emot data.

Undantag

innerStream är inte läsbar.

-eller-

innerStream är inte skrivbar.

innerStream är null.

-eller-

innerStream är lika med Null.

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

Initierar en ny instans av klassen med hjälp av SslStream det angivna Stream och strömmande stängningsbeteendet.

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

innerStream
Stream

Ett Stream objekt som används av SslStream för att skicka och ta emot data.

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

innerStream är inte läsbar.

-eller-

innerStream är inte skrivbar.

innerStream är null.

-eller-

innerStream är lika med Null.

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

Initierar en ny instans av klassen med hjälp av det angivna beteendet SslStreamför stängning av Stream dataström och certifikatverifieringsdelegat.

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

innerStream
Stream

Ett Stream objekt som används av SslStream för att skicka och ta emot data.

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

innerStream är inte läsbar.

-eller-

innerStream är inte skrivbar.

innerStream är null.

-eller-

innerStream är lika med Null.

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

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.

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

innerStream
Stream

Ett Stream objekt som används av SslStream för att skicka och ta emot data.

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

innerStream är inte läsbar.

-eller-

innerStream är inte skrivbar.

innerStream är null.

-eller-

innerStream är lika med Null.

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

Initierar en ny instans av SslStream klassen med den angivna Stream.

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

innerStream
Stream

Ett Stream objekt som används av SslStream för att skicka och ta emot data.

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.

innerStream är null.

-eller-

innerStream är lika med Null.

Kommentarer

Användning av Null-chiffer krävs när parametern encryptionPolicy är inställd på EncryptionPolicy.NoEncryption.

Gäller för