IntranetZoneCredentialPolicy.ShouldSendCredential Méthode
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.
Retourne un Boolean qui indique si les informations d'identification du client sont envoyées avec une demande de ressource effectuée à l'aide de WebRequest.
public:
virtual bool ShouldSendCredential(Uri ^ challengeUri, System::Net::WebRequest ^ request, System::Net::NetworkCredential ^ credential, System::Net::IAuthenticationModule ^ authModule);
public virtual bool ShouldSendCredential (Uri challengeUri, System.Net.WebRequest request, System.Net.NetworkCredential credential, System.Net.IAuthenticationModule authModule);
abstract member ShouldSendCredential : Uri * System.Net.WebRequest * System.Net.NetworkCredential * System.Net.IAuthenticationModule -> bool
override this.ShouldSendCredential : Uri * System.Net.WebRequest * System.Net.NetworkCredential * System.Net.IAuthenticationModule -> bool
Public Overridable Function ShouldSendCredential (challengeUri As Uri, request As WebRequest, credential As NetworkCredential, authModule As IAuthenticationModule) As Boolean
Paramètres
- request
- WebRequest
WebRequest représentant la ressource demandée.
- credential
- NetworkCredential
NetworkCredential qui sera envoyé avec la demande si cette méthode retourne true
.
- authModule
- IAuthenticationModule
IAuthenticationModule qui exécutera l'authentification, si elle est requise.
Retours
true
si la ressource demandée se trouve dans le même domaine que le client effectuant la demande ; sinon, false
.
Implémente
Exemples
L’exemple de code suivant illustre la dérivation de IntranetZoneCredentialPolicy pour autoriser l’envoi d’informations d’identification pour les requêtes qui utilisent le protocole HTTPS (Secure Hypertext Transfer Protocol) avec l’authentification de base. À l’aide du protocole HTTPS et de l’authentification de base, le mot de passe utilisateur est chiffré avant d’être envoyé sur le réseau.
// The following class allows credentials to be sent if they are for requests for resources
// in the same domain, or if the request uses the HTTPSscheme and basic authentication is
// required.
public ref class HttpsBasicCredentialPolicy: public IntranetZoneCredentialPolicy
{
public:
HttpsBasicCredentialPolicy(){}
virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ credential, IAuthenticationModule^ authModule ) override
{
Console::WriteLine( L"Checking custom credential policy for HTTPS and basic." );
bool answer = IntranetZoneCredentialPolicy::ShouldSendCredential( challengeUri, request, credential, authModule );
if ( answer == true )
{
Console::WriteLine( L"Sending credential for intranet resource." );
return answer;
}
// Determine whether the base implementation returned false for basic and HTTPS.
if ( request->RequestUri->Scheme == Uri::UriSchemeHttps && authModule->AuthenticationType->Equals( L"Basic" ) )
{
Console::WriteLine( L"Sending credential for HTTPS and basic." );
return true;
}
return false;
}
};
// The following class allows credentials to be sent if they are for requests for resources
// in the same domain, or if the request uses the HTTPSscheme and basic authentication is
// required.
public class HttpsBasicCredentialPolicy: IntranetZoneCredentialPolicy
{
public HttpsBasicCredentialPolicy()
{
}
public override bool ShouldSendCredential(Uri challengeUri,
WebRequest request,
NetworkCredential credential,
IAuthenticationModule authModule)
{
Console.WriteLine("Checking custom credential policy for HTTPS and basic.");
bool answer = base.ShouldSendCredential(challengeUri, request, credential, authModule);
if (answer == true)
{
Console.WriteLine("Sending credential for intranet resource.");
return answer;
}
// Determine whether the base implementation returned false for basic and HTTPS.
if (request.RequestUri.Scheme == Uri.UriSchemeHttps &&
authModule.AuthenticationType == "Basic")
{
Console.WriteLine("Sending credential for HTTPS and basic.");
return true;
}
return false;
}
}
Remarques
Les applications n’appellent pas cette méthode directement ; il est appelé par le qui est chargé d’effectuer l’authentification IAuthenticationModule auprès du serveur. Si cette méthode retourne false
, le n’authentifie IAuthenticationModule pas le client sur le serveur.
Cette méthode est appelée uniquement pour les requêtes qui spécifient des informations d’identification ou qui utilisent un WebProxy objet qui spécifie les informations d’identification.