HttpListener.UnsafeConnectionNtlmAuthentication Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.