HttpListener.UnsafeConnectionNtlmAuthentication 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 Boolean wartość, która kontroluje, czy podczas korzystania z protokołu NTLM do uwierzytelniania są wymagane dodatkowe żądania używające tego samego połączenia protokołu Transmission Control Protocol (TCP).
public:
property bool UnsafeConnectionNtlmAuthentication { bool get(); void set(bool value); };
public bool UnsafeConnectionNtlmAuthentication { get; set; }
member this.UnsafeConnectionNtlmAuthentication : bool with get, set
Public Property UnsafeConnectionNtlmAuthentication As Boolean
Wartość właściwości
true
jeśli pierwsze IIdentity żądanie będzie używane dla kolejnych żądań w tym samym połączeniu; w przeciwnym razie . false
Wartość domyślna to false
.
Wyjątki
Ten obiekt został zamknięty.
Przykłady
W poniższym przykładzie kodu pokazano ustawienie tej właściwości.
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
Gdy ta właściwość jest ustawiona na true
i pierwsze żądanie za pośrednictwem określonego połączenia TCP jest uwierzytelniane przy użyciu protokołu NTLM, kolejne żądania za pośrednictwem tego samego połączenia TCP są przetwarzane przy użyciu informacji uwierzytelniania (IIdentity) początkowego żądania.
Ta właściwość nie ma wpływu, gdy protokół NTLM nie jest protokołem uwierzytelniania. Jeśli negocjacja jest określony jako protokół uwierzytelniania, ta właściwość ma wpływ tylko wtedy, gdy NTLM jest rzeczywistym protokołem używanym do uwierzytelniania.
Uwaga
Ustawienie tej właściwości w celu true
zwiększenia wydajności, ponieważ HttpListener nie powoduje wysyłania dodatkowych wyzwań związanych z uwierzytelnianiem NTLM, istnieje zagrożenie bezpieczeństwa, które nie wymaga podania informacji o uwierzytelnianiu przez wszystkie żądania. Należy określić, czy wzrost wydajności jest wart tego ryzyka.