HttpListener.AuthenticationSchemeSelectorDelegate 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 le délégué appelé pour déterminer le protocole utilisé pendant l'authentification des clients.
public:
property System::Net::AuthenticationSchemeSelector ^ AuthenticationSchemeSelectorDelegate { System::Net::AuthenticationSchemeSelector ^ get(); void set(System::Net::AuthenticationSchemeSelector ^ value); };
public System.Net.AuthenticationSchemeSelector? AuthenticationSchemeSelectorDelegate { get; set; }
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. La valeur par défaut est null
.
Exceptions
L’objet a été fermé.
Exemples
L’exemple de code suivant définit la valeur de cette propriété.
// 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égué.
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 soit utilisé 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é. Pour spécifier un protocole à utiliser pour toutes les demandes du client, utilisez la AuthenticationSchemes propriété .
Si le client n’a pas spécifié d’informations d’authentification dans ses en-têtes, le HttpListener appelle le délégué spécifié pour chaque demande entrante non authentifiée afin de déterminer le protocole, le cas échéant, à utiliser pour authentifier le client. Les GetContext méthodes et EndGetContext retournent une requête entrante uniquement si le HttpListener a correctement authentifié la demande. Si une demande ne peut pas être authentifiée, renvoie HttpListener automatiquement une réponse 401. Vous pouvez obtenir l’identité d’un client correctement authentifié à l’aide de la HttpRequest.LogonUserIdentity propriété .
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 utilise différents protocoles d’authentification en fonction des caractéristiques des demandes qu’elle reçoit (par exemple, la propriété ou UserHostAddress la Url requête).
Notes
Pour définir cette propriété afin d’activer Digest, NTLM ou Negotiate, vous devez , SecurityPermissionControlPrincipal.