IntranetZoneCredentialPolicy.ShouldSendCredential Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí hodnotu Boolean označující, jestli se přihlašovací údaje klienta odešlou spolu s požadavkem na prostředek vytvořený pomocí 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
Parametry
- request
- WebRequest
Představuje WebRequest požadovaný prostředek.
- credential
- NetworkCredential
Pokud NetworkCredential tato metoda vrátí true
, odešle se spolu s požadavkem .
- authModule
- IAuthenticationModule
Ten IAuthenticationModule , který provede ověřování, pokud je ověřování vyžadováno.
Návraty
true
pokud se požadovaný prostředek nachází ve stejné doméně jako klient, který žádost vytváří; v opačném případě . false
Implementuje
Příklady
Následující příklad kódu ukazuje odvození od IntranetZoneCredentialPolicy , aby bylo možné odesílat přihlašovací údaje pro požadavky, které používají protokol HTTPS (Secure Hypertext Transfer Protocol) se základním ověřováním. Pomocí protokolu HTTPS a základního ověřování se heslo uživatele před odesláním přes síť zašifruje.
// 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;
}
}
Poznámky
Aplikace nevolají tuto metodu přímo; je volána uživatelem IAuthenticationModule , který je zodpovědný za ověřování se serverem. Pokud tato metoda vrátí false
, IAuthenticationModule klient se na serveru neověří.
Tato metoda je volána pouze pro požadavky, které určují přihlašovací údaje nebo používají WebProxy objekt, který určuje přihlašovací údaje.