HttpListener.UnsafeConnectionNtlmAuthentication Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore Boolean che controlla se è necessario autenticare altre richieste che usano la stessa connessione TCP (Transmission Control Protocol), quando viene usato NTLM.
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
Valore della proprietà
true
se l'interfaccia IIdentity della prima richiesta verrà utilizzata per le richieste successive sulla stessa connessione; in caso contrario, false
. Il valore predefinito è false
.
Eccezioni
L'oggetto è stato chiuso.
Esempio
Nell'esempio di codice seguente viene illustrata l'impostazione di questa proprietà.
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
Commenti
Quando questa proprietà è impostata su true
e la prima richiesta su una determinata connessione TCP viene autenticata usando NTLM, le richieste successive sulla stessa connessione TCP vengono elaborate usando le informazioni di autenticazione (IIdentity) della richiesta iniziale.
La proprietà non ha alcun effetto se il protocollo di autenticazione non è NTLM. Quando negozia viene specificato come protocollo di autenticazione, questa proprietà ha un effetto solo se NTLM è il protocollo effettivo usato per l'autenticazione.
Nota
Durante l'impostazione di questa proprietà per true
aumentare le prestazioni, poiché non HttpListener invia ulteriori problemi di autenticazione NTLM, esiste un rischio di sicurezza in non richiedere a tutte le richieste di fornire informazioni di autenticazione. Occorre quindi stabilire se il miglioramento delle prestazioni giustifica questo rischio.