HttpListener.AuthenticationSchemes Właściwość
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.
Pobiera lub ustawia schemat używany do uwierzytelniania klientów.
public:
property System::Net::AuthenticationSchemes AuthenticationSchemes { System::Net::AuthenticationSchemes get(); void set(System::Net::AuthenticationSchemes value); };
public System.Net.AuthenticationSchemes AuthenticationSchemes { get; set; }
member this.AuthenticationSchemes : System.Net.AuthenticationSchemes with get, set
Public Property AuthenticationSchemes As AuthenticationSchemes
Wartość właściwości
Bitowa kombinacja AuthenticationSchemes wartości wyliczenia wskazująca sposób uwierzytelniania klientów. Wartość domyślna to Anonymous.
Wyjątki
Ten obiekt został zamknięty.
Przykłady
Poniższy przykład kodu przedstawia użycie AuthenticationSchemes właściwości w celu określenia schematu uwierzytelniania.
public static void SimpleListenerWithUnsafeAuthentication(string[] prefixes)
{
// URI prefixes are required,
// for example "http://contoso.com:8080/index/".
if (prefixes == null || prefixes.Length == 0)
throw new ArgumentException("prefixes");
// Set up a listener.
HttpListener listener = new HttpListener();
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
// Specify Negotiate as the authentication scheme.
listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate;
// If NTLM is used, we will allow multiple requests on the same
// connection to use the authentication information of first request.
// This improves performance but does reduce the security of your
// application.
listener.UnsafeConnectionNtlmAuthentication = true;
// This listener does not want to receive exceptions
// that occur when sending the response to the client.
listener.IgnoreWriteExceptions = true;
Console.WriteLine("Listening...");
// ... process requests here.
listener.Close();
}
Public Shared Sub SimpleListenerWithUnsafeAuthentication(ByVal prefixes As String())
' URI prefixes are required,
' for example "http://contoso.com:8080/index/".
If prefixes Is Nothing OrElse prefixes.Length = 0 Then Throw New ArgumentException("prefixes")
' Set up a listener.
Dim listener As HttpListener = New HttpListener()
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
listener.Start()
' Specify Negotiate as the authentication scheme.
listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate
' If NTLM Is used, we will allow multiple requests on the same
' connection to use the authentication information of first request.
' This improves performance but does reduce the security of your
' application.
listener.UnsafeConnectionNtlmAuthentication = True
' This listener does Not want to receive exceptions
' that occur when sending the response to the client.
listener.IgnoreWriteExceptions = True
Console.WriteLine("Listening...")
' ... process requests here.
listener.Close()
End Sub
Uwagi
Obiekt HttpListener używa określonego schematu do uwierzytelniania wszystkich żądań przychodzących. Metody GetContext i EndGetContext zwracają przychodzące żądanie klienta tylko wtedy, gdy HttpListener żądanie zostanie pomyślnie uwierzytelnione.
Tożsamość pomyślnie uwierzytelnionego klienta można przesłuchać przy użyciu HttpListenerContext.User właściwości .
Jeśli chceszHttpListener, aby obiekt używał różnych mechanizmów uwierzytelniania na podstawie właściwości odbieranych żądań (na przykład właściwości lub UserHostName żądaniaUrl), musisz zaimplementować metodę, która wybiera schemat uwierzytelniania. Aby uzyskać instrukcje dotyczące tego, jak to zrobić, zobacz dokumentację AuthenticationSchemeSelectorDelegate właściwości.
Uwaga
Aby ustawić tę właściwość tak, aby włączyć funkcję Digest, NTLM lub Negotiate, wymaga elementu SecurityPermission, ControlPrincipal.