Sdílet prostřednictvím


HttpListener.UnsafeConnectionNtlmAuthentication Vlastnost

Definice

Získá nebo nastaví Boolean hodnotu, která určuje, zda při použití protokolu NTLM další požadavky používající stejné připojení TCP (Transmission Control Protocol) jsou vyžadovány k ověření.

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

Hodnota vlastnosti

true pokud se IIdentity první požadavek použije pro následné požadavky na stejné připojení, falsejinak . Výchozí hodnota je false.

Výjimky

Tento objekt byl uzavřen.

Příklady

Následující příklad kódu ukazuje nastavení této vlastnosti.

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

Pokud je tato vlastnost nastavena na true a první požadavek přes konkrétní připojení TCP je ověřen pomocí protokolu NTLM, následné požadavky přes stejné připojení TCP jsou zpracovány pomocí ověřovacích informací (IIdentity) počátečního požadavku.

Tato vlastnost nemá žádný vliv, pokud protokol NTLM není ověřovací protokol. Pokud negotiate je zadán jako ověřovací protokol, má tato vlastnost účinek pouze v případě, že NTLM je skutečný protokol používaný pro ověřování.

Poznámka

Při nastavení této vlastnosti ke true zvýšení výkonu HttpListener , protože neodesílá další výzvy ověřování NTLM, existuje riziko zabezpečení v případě, že nebude nutné, aby všechny požadavky poskytovaly ověřovací informace. Musíte určit, jestli zvýšení výkonu stojí za toto riziko.

Platí pro