Partager via


HttpListener.UnsafeConnectionNtlmAuthentication Propriété

Définition

Obtient ou définit une valeur Boolean qui contrôle si, quand NTLM est utilisé, les demandes supplémentaires utilisant la même connexion TCP (Transmission Control Protocol) doivent être authentifiées.

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

Valeur de propriété

true si le IIdentity de la première demande doit être utilisé pour les demandes suivantes sur la même connexion ; sinon, false. La valeur par défaut est false.

Exceptions

L’objet a été fermé.

Exemples

L’exemple de code suivant illustre la définition de cette propriété.

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

Remarques

Lorsque cette propriété est définie true sur et que la première requête sur une connexion TCP particulière est authentifiée à l’aide de NTLM, les requêtes suivantes sur la même connexion TCP sont traitées à l’aide des informations d’authentification (IIdentity) de la demande initiale.

Cette propriété n'a aucun effet si NTLM n'est pas le protocole d'authentification utilisé. Lorsque Negotiate est spécifié comme protocole d’authentification, cette propriété a un effet uniquement si NTLM est le protocole réel utilisé pour l’authentification.

Notes

Bien que la définition de cette propriété augmente true les performances, car le HttpListener n’envoie pas de défis d’authentification NTLM supplémentaires, il existe un risque de sécurité à ne pas exiger que toutes les demandes fournissent des informations d’authentification. Vous devez déterminer si l'augmentation des performances vaut la peine de prendre ce risque.

S’applique à