HttpListener.AuthenticationSchemeSelectorDelegate HttpListener.AuthenticationSchemeSelectorDelegate HttpListener.AuthenticationSchemeSelectorDelegate HttpListener.AuthenticationSchemeSelectorDelegate Property

Définition

Obtient ou définit le délégué appelé pour déterminer le protocole utilisé pendant l'authentification des clients.Gets or sets the delegate called to determine the protocol used to authenticate clients.

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

Valeur de propriété

Délégué AuthenticationSchemeSelector qui appelle la méthode utilisée pour sélectionner un protocole d'authentification.An AuthenticationSchemeSelector delegate that invokes the method used to select an authentication protocol. La valeur par défaut est null.The default value is null.

Exceptions

Exemples

L’exemple de code suivant définit la valeur de cette propriété.The following code example sets the value of this property.

// Set up a listener.
HttpListener listener = new HttpListener();
HttpListenerPrefixCollection prefixes = listener.Prefixes;
prefixes.Add(@"http://localhost:8080/");
prefixes.Add(@"http://contoso.com:8080/");

// Specify the authentication delegate.
listener.AuthenticationSchemeSelectorDelegate = 
    new AuthenticationSchemeSelector (AuthenticationSchemeForClient);

// Start listening for requests and process them 
// synchronously.
listener.Start();
' Set up a listener.
Dim listener As New HttpListener()
Dim prefixes As HttpListenerPrefixCollection = listener.Prefixes
prefixes.Add("http://localhost:8080/")
prefixes.Add("http://contoso.com:8080/")

' Specify the authentication delegate.
listener.AuthenticationSchemeSelectorDelegate = New AuthenticationSchemeSelector(AddressOf AuthenticationSchemeForClient)

' Start listening for requests and process them 
' synchronously.
listener.Start()

L’exemple de code suivant fournit une implémentation d’une méthode appelée par un AuthenticationSchemeSelector déléguer.The following code example provides an implementation of a method invoked by an AuthenticationSchemeSelector delegate.

static AuthenticationSchemes AuthenticationSchemeForClient(HttpListenerRequest request)
{
    Console.WriteLine("Client authentication protocol selection in progress...");
    // Do not authenticate local machine requests.
    if (request.RemoteEndPoint.Address.Equals (IPAddress.Loopback))
    {
        return AuthenticationSchemes.None;
    }
    else
    {
        return AuthenticationSchemes.IntegratedWindowsAuthentication;
    }
}
Private Shared Function AuthenticationSchemeForClient(ByVal request As HttpListenerRequest) As AuthenticationSchemes
    Console.WriteLine("Client authentication protocol selection in progress...")
    ' Do not authenticate local machine requests.
    If request.RemoteEndPoint.Address.Equals(IPAddress.Loopback) Then
        Return AuthenticationSchemes.None
    Else
        Return AuthenticationSchemes.IntegratedWindowsAuthentication
    End If
End Function

Remarques

Notes

Si vous souhaitez que le même protocole d’authentification à utiliser pour toutes les demandes gérées par une instance particulière de HttpListener, vous n’avez pas besoin de définir cette propriété.If you want the same authentication protocol to be used for all requests handled by a particular instance of HttpListener, you do not need to set this property. Pour spécifier un protocole à utiliser pour toutes les demandes de client, utilisez le AuthenticationSchemes propriété.To specify a protocol to be used for all client requests, use the AuthenticationSchemes property.

Si le client n’a pas spécifié les informations d’authentification dans ses en-têtes, le HttpListener appelle le délégué spécifié pour chaque demande entrante non authentifiée déterminer le cas échéant, protocole à utiliser pour authentifier le client.If the client has not specified authentication information in its headers, the HttpListener calls the specified delegate for each unauthenticated incoming request to determine which, if any, protocol to use to authenticate the client. Le GetContext et EndGetContext méthodes retournent un demande entrante que si le HttpListener authentifié avec succès la demande.The GetContext and EndGetContext methods return an incoming request only if the HttpListener successfully authenticated the request. Si une demande ne peut pas être authentifiée, le HttpListener automatiquement renvoie une réponse 401.If a request cannot be authenticated, the HttpListener automatically sends back a 401 response. Vous pouvez obtenir l’identité d’un client correctement authentifié à l’aide de la HttpRequest.LogonUserIdentity propriété.You can get the identity of a successfully authenticated client using the HttpRequest.LogonUserIdentity property.

La possibilité de déléguer le choix du protocole d’authentification à une méthode spécifique à l’application est utile si vous souhaitez qu’une instance de HttpListener à utiliser différents protocoles d’authentification selon les caractéristiques de demandes reçues (pour par exemple, la demande Url ou UserHostAddress propriété).The ability to delegate the choice of authentication protocol to an application-specific method is useful if you want an instance of HttpListener to use different authentication protocols depending on the characteristics of the requests it receives (for example, the request's Url or UserHostAddress property).

Notes

Pour définir cette propriété pour activer Digest, NTLM ou Negotiate nécessite le SecurityPermission, ControlPrincipal.To set this property to enable Digest, NTLM, or Negotiate requires the SecurityPermission, ControlPrincipal.

S’applique à