SslApplicationProtocol Struktur
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili nilai protokol Aplikasi TLS.
public value class SslApplicationProtocol : IEquatable<System::Net::Security::SslApplicationProtocol>
public readonly struct SslApplicationProtocol : IEquatable<System.Net.Security.SslApplicationProtocol>
type SslApplicationProtocol = struct
Public Structure SslApplicationProtocol
Implements IEquatable(Of SslApplicationProtocol)
- Warisan
- Penerapan
Contoh
Contoh kode berikut menunjukkan negosiasi protokol tingkat aplikasi pada SslStream. Server mengiklankan dukungan untuk protocol1
dan protocol2
. Klien mengiklankan dukungan untuk protocol2
dan protocol3
. Protokol yang umum didukung (protocol2
) akan dinegosiasikan selama jabat tangan.
async Task Server(NetworkStream stream, X509Certificate2 serverCertificate)
{
using var server = new SslStream(stream);
await server.AuthenticateAsServerAsync(new SslServerAuthenticationOptions
{
ServerCertificate = serverCertificate,
ApplicationProtocols = new()
{
new("protocol1"),
new("protocol2"),
}
});
string protocol = Encoding.ASCII.GetString(server.NegotiatedApplicationProtocol.Protocol.Span);
System.Console.WriteLine($"Server - negotiated protocol: {protocol}");
}
async Task Client(NetworkStream stream, string hostName)
{
using var client = new SslStream(stream);
await client.AuthenticateAsClientAsync(new SslClientAuthenticationOptions
{
// the host name must match the name on the certificate used on the server side
TargetHost = hostName,
ApplicationProtocols = new()
{
new("protocol2"),
new("protocol3")
}
});
string protocol = Encoding.ASCII.GetString(client.NegotiatedApplicationProtocol.Protocol.Span);
System.Console.WriteLine($"Client - negotiated protocol: {protocol}");
}
// possible output:
// Server - negotiated protocol: protocol2
// Client - negotiated protocol: protocol2
Async Function Server(stream As NetworkStream, serverCertificate As X509Certificate2) As Task
Using serverStream As SslStream = new SslStream(stream)
Dim options as New SslServerAuthenticationOptions() With
{
.ServerCertificate = serverCertificate,
.ApplicationProtocols = New List(Of SslApplicationProtocol) From
{
New SslApplicationProtocol("protocol1"),
New SslApplicationProtocol("protocol2")
}
}
Await serverStream.AuthenticateAsServerAsync(options)
Dim protocol As String = Encoding.ASCII.GetString(
serverStream.NegotiatedApplicationProtocol.Protocol.Span)
System.Console.WriteLine($"Server - negotiated protocol: {protocol}")
End Using
End Function
Async Function Client(stream As NetworkStream, hostName As String ) As Task
Using clientStream As SslStream = new SslStream(stream)
Dim options as New SslClientAuthenticationOptions() With
{
.TargetHost = hostName,
.ApplicationProtocols = New List(Of SslApplicationProtocol) From
{
New SslApplicationProtocol("protocol2"),
New SslApplicationProtocol("protocol3")
}
}
Await clientStream.AuthenticateAsClientAsync(options)
Dim protocol As String = Encoding.ASCII.GetString(
clientStream.NegotiatedApplicationProtocol.Protocol.Span)
System.Console.WriteLine($"Client - negotiated protocol: {protocol}")
End Using
End Function
' possible output:
' Server - negotiated protocol: protocol2
' Client - negotiated protocol: protocol2
Keterangan
Jenis ini berisi bidang statis dengan nilai yang telah SslApplicationProtocol ditentukan sebelumnya untuk versi HTTP.
Selama jabat tangan, klien mengirim daftar protokol ALPN yang tersedia dan server memilih kecocokan terbaik dari daftar itu.
Untuk daftar lengkap protokol yang didukung, lihat ID Protokol TLS Application-Layer Protocol Negotiation (ALPN).
Konstruktor
SslApplicationProtocol(Byte[]) |
Menginisialisasi instans baru dari SslApplicationProtocol. |
SslApplicationProtocol(String) |
Menginisialisasi instans baru dari SslApplicationProtocol. |
Bidang
Http11 |
Mendapatkan protokol aplikasi HTTP/1.1 TLS yang SslApplicationProtocol mewakili. |
Http2 |
Mendapatkan protokol aplikasi HTTP/2 TLS yang SslApplicationProtocol mewakili. |
Http3 |
Menentukan instans SslApplicationProtocol untuk HTTP 3.0. |
Properti
Protocol |
Mendapatkan protokol aplikasi TLS saat ini yang diwakili oleh ini SslApplicationProtocol. |
Metode
Equals(Object) |
Membandingkan SslApplicationProtocol dengan objek yang ditentukan. |
Equals(SslApplicationProtocol) |
Membandingkan dengan SslApplicationProtocol instans yang ditentukan SslApplicationProtocol . |
GetHashCode() |
Mengembalikan kode hash untuk SslApplicationProtocol instans. |
ToString() |
Mengambil alih ToString() metode . |
Operator
Equality(SslApplicationProtocol, SslApplicationProtocol) |
Operator kesetaraan untuk membandingkan dua SslApplicationProtocol objek. |
Inequality(SslApplicationProtocol, SslApplicationProtocol) |
Operator ketidaksamaan untuk membandingkan dua SslApplicationProtocol objek. |