IntranetZoneCredentialPolicy.ShouldSendCredential Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un oggetto Boolean che indica se le credenziali del client vengono inviate con una richiesta di una risorsa effettuata mediante l'oggetto 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
Parametri
- request
- WebRequest
La classe WebRequest che rappresenta la risorsa da richiedere.
- credential
- NetworkCredential
La classe NetworkCredential che verrà inviata con la richiesta se questo metodo restituisce true
.
- authModule
- IAuthenticationModule
L'interfaccia IAuthenticationModule che eseguirà l'autenticazione, se questa viene richiesta.
Restituisce
true
se la risorsa richiesta si trova nello stesso dominio del client che effettua la richiesta; in caso contrario false
.
Implementazioni
Esempio
L'esempio di codice seguente illustra la derivazione da IntranetZoneCredentialPolicy per consentire l'invio delle credenziali per le richieste che usano Secure Hypertext Transfer Protocol (HTTPS) con l'autenticazione di base. Usando HTTPS e l'autenticazione di base, la password utente viene crittografata prima dell'invio in rete.
// 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;
}
}
Commenti
Le applicazioni non chiamano questo metodo direttamente; viene chiamato da IAuthenticationModule che è responsabile dell'esecuzione dell'autenticazione con il server. Se questo metodo restituisce false
, l'oggetto IAuthenticationModule non autentica il client nel server.
Questo metodo viene chiamato solo per le richieste che specificano le credenziali o usano un WebProxy oggetto che specifica le credenziali.