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 clientes, utilisez la AuthenticationSchemes propriété.
Si le client n’a pas spécifié d’informations d’authentification dans ses en-têtes, il HttpListener appelle le délégué spécifié pour chaque requête entrante non authentifiée pour déterminer quel protocole utiliser pour authentifier le client. Les GetContext méthodes et EndGetContext les méthodes retournent une requête entrante uniquement si la HttpListener requête a été authentifiée avec succès. Si une demande ne peut pas être authentifiée, elle HttpListener renvoie automatiquement une réponse 401. Vous pouvez obtenir l’identité d’un client authentifié avec succès à 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 d’utiliser HttpListener différents protocoles d’authentification en fonction des caractéristiques des demandes reçues (par exemple, la requête Url ou UserHostAddress la propriété).
Notes
Pour définir cette propriété pour activer Digest, NTLM ou Negotiate nécessite le SecurityPermission. ControlPrincipal