HttpListener.AuthenticationSchemes Propriété

Définition

Obtient ou définit le schéma utilisé pour authentifier les clients.

public:
 property System::Net::AuthenticationSchemes AuthenticationSchemes { System::Net::AuthenticationSchemes get(); void set(System::Net::AuthenticationSchemes value); };
public System.Net.AuthenticationSchemes AuthenticationSchemes { get; set; }
member this.AuthenticationSchemes : System.Net.AuthenticationSchemes with get, set
Public Property AuthenticationSchemes As AuthenticationSchemes

Valeur de propriété

Combinaison d'opérations de bits de valeurs d'énumération AuthenticationSchemes qui indiquent la manière dont les clients doivent être authentifiés. La valeur par défaut est Anonymous.

Exceptions

L’objet a été fermé.

Exemples

L’exemple de code suivant illustre l’utilisation de la AuthenticationSchemes propriété pour spécifier un schéma d’authentification.

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

utilise HttpListener le schéma spécifié pour authentifier toutes les demandes entrantes. Les GetContext méthodes et EndGetContext retournent une requête cliente entrante uniquement si le HttpListener authentifie correctement la demande.

Vous pouvez interroger l’identité d’un client authentifié à l’aide de la HttpListenerContext.User propriété .

Si vous souhaitez qu’un HttpListener objet utilise différents mécanismes d’authentification en fonction des caractéristiques des demandes qu’il Url reçoit (par exemple, la requête ou UserHostName la propriété), vous devez implémenter une méthode qui choisit le schéma d’authentification. Pour obtenir des instructions sur la procédure à suivre, consultez la documentation relative aux AuthenticationSchemeSelectorDelegate propriétés.

Notes

Pour définir cette propriété afin d’activer Digest, NTLM ou Negotiate, vous devez .SecurityPermissionControlPrincipal

S’applique à