HttpListener.AuthenticationSchemes Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví schéma použité k ověřování klientů.
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
Hodnota vlastnosti
Bitové kombinace hodnot výčtu AuthenticationSchemes , která určuje, jak se mají klienti ověřovat. Výchozí hodnota je Anonymous.
Výjimky
Tento objekt byl uzavřen.
Příklady
Následující příklad kódu ukazuje použití AuthenticationSchemes vlastnosti k zadání schématu ověřování.
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
Poznámky
Nástroj HttpListener používá zadané schéma k ověření všech příchozích požadavků. Metody GetContext a EndGetContext vrátí příchozí požadavek klienta pouze v případě, že HttpListener požadavek úspěšně ověří.
Identitu úspěšně ověřeného klienta můžete vyslecht pomocí HttpListenerContext.User vlastnosti .
Pokud chcete HttpListener , aby objekt používal různé mechanismy ověřování na základě charakteristik požadavků, které přijímá (například požadavek Url nebo UserHostName vlastnost), musíte implementovat metodu, která zvolí schéma ověřování. Pokyny k tomu najdete v dokumentaci k vlastnostem AuthenticationSchemeSelectorDelegate .
Poznámka
Chcete-li nastavit tuto vlastnost pro povolení funkce Digest, protokol NTLM nebo Negotiate vyžaduje , SecurityPermission. ControlPrincipal