SslApplicationProtocol Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje wartość protokołu aplikacji 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)
- Dziedziczenie
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano negocjacje protokołu na poziomie aplikacji w systemie SslStream. Serwer anonsuje obsługę systemów protocol1
i protocol2
. Klient anonsuje obsługę systemów protocol2
i protocol3
. Często obsługiwany protokół (protocol2
) jest negocjowany podczas uzgadniania.
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
Uwagi
Ten typ zawiera pola statyczne ze wstępnie zdefiniowanymi SslApplicationProtocol wartościami dla wersji PROTOKOŁU HTTP.
Podczas uzgadniania klient wysyła listę dostępnych protokołów ALPN, a serwer wybiera najlepsze dopasowanie z tej listy.
Aby uzyskać pełną listę obsługiwanych protokołów, zobacz Identyfikatory protokołu TLS Application-Layer (ALPN).
Konstruktory
SslApplicationProtocol(Byte[]) |
Inicjuje nowe wystąpienie klasy SslApplicationProtocol. |
SslApplicationProtocol(String) |
Inicjuje nowe wystąpienie klasy SslApplicationProtocol. |
Pola
Http11 |
SslApplicationProtocol Pobiera reprezentujący protokół aplikacji TLS HTTP/1.1. |
Http2 |
SslApplicationProtocol Pobiera reprezentujący protokół aplikacji HTTP/2 TLS. |
Http3 |
SslApplicationProtocol Definiuje wystąpienie dla protokołu HTTP 3.0. |
Właściwości
Protocol |
Pobiera bieżący protokół aplikacji TLS reprezentowany przez ten SslApplicationProtocolelement . |
Metody
Equals(Object) |
Porównuje obiekt SslApplicationProtocol z określonym obiektem. |
Equals(SslApplicationProtocol) |
Porównuje obiekt z SslApplicationProtocol określonym SslApplicationProtocol wystąpieniem. |
GetHashCode() |
Zwraca kod skrótu SslApplicationProtocol dla wystąpienia. |
ToString() |
Zastępuje metodę ToString() . |
Operatory
Equality(SslApplicationProtocol, SslApplicationProtocol) |
Operator równości do porównywania dwóch SslApplicationProtocol obiektów. |
Inequality(SslApplicationProtocol, SslApplicationProtocol) |
Operator nierówności do porównywania dwóch SslApplicationProtocol obiektów. |