SslApplicationProtocol Struct
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
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).
Konstruktorów
| Nazwa | Opis |
|---|---|
| SslApplicationProtocol(Byte[]) |
Inicjuje nowe wystąpienie klasy SslApplicationProtocol. |
| SslApplicationProtocol(String) |
Inicjuje nowe wystąpienie klasy SslApplicationProtocol. |
Pola
| Nazwa | Opis |
|---|---|
| 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
| Nazwa | Opis |
|---|---|
| Protocol |
Pobiera bieżący protokół aplikacji TLS reprezentowany przez ten SslApplicationProtocolelement . |
Metody
| Nazwa | Opis |
|---|---|
| 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() . |
Operatorów
| Nazwa | Opis |
|---|---|
| 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. |