Nyelv

SslStream Konstruktorok

Definíció

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

Inicializálja az osztály új példányát a SslStream megadott Streamhasználatával.

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

innerStream
Stream

Az Stream adatok küldéséhez és fogadásához használt SslStream objektum.

Kivételek

innerStream nem olvasható.

-vagy-

innerStream nem írható.

innerStream az null.

-vagy-

innerStreamegyenlő .Null

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

Inicializálja az osztály új példányát a SslStream megadott Stream és streamlezárási viselkedéssel.

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

innerStream
Stream

Az Stream adatok küldéséhez és fogadásához használt SslStream objektum.

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

innerStream nem olvasható.

-vagy-

innerStream nem írható.

innerStream az null.

-vagy-

innerStreamegyenlő .Null

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

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.

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

innerStream
Stream

Az Stream adatok küldéséhez és fogadásához használt SslStream objektum.

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

innerStream nem olvasható.

-vagy-

innerStream nem írható.

innerStream az null.

-vagy-

innerStreamegyenlő .Null

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

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.

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

innerStream
Stream

Az Stream adatok küldéséhez és fogadásához használt SslStream objektum.

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

innerStream nem olvasható.

-vagy-

innerStream nem írható.

innerStream az null.

-vagy-

innerStreamegyenlő .Null

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

Inicializálja az osztály új példányát a SslStream megadott Streamhasználatával.

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

innerStream
Stream

Az Stream adatok küldéséhez és fogadásához használt SslStream objektum.

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.

innerStream az null.

-vagy-

innerStreamegyenlő .Null

Megjegyzések

A null titkosítás használatára akkor van szükség, ha a encryptionPolicy paraméter értéke EncryptionPolicy.NoEncryption.

A következőre érvényes: