IntranetZoneCredentialPolicy.ShouldSendCredential Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение Boolean, показывающее, отправляются ли учетные данные клиента с запросом ресурса, выполненным с помощью 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
Параметры
- request
- WebRequest
Запрос WebRequest, представляющий запрашиваемый ресурс.
- credential
- NetworkCredential
Учетные данные NetworkCredential, которые будут отправлены с запросом, если этот метод возвращает значение true
.
- authModule
- IAuthenticationModule
Модуль IAuthenticationModule, который будет выполнять проверку подлинности, если проверка подлинности является необходимой.
Возвращаемое значение
Значение true
, если запрошенный ресурс и клиент, выполнивший запрос, находятся в одном домене, в противном случае — значение false
.
Реализации
Примеры
В следующем примере кода показано наследование от IntranetZoneCredentialPolicy , чтобы разрешить отправку учетных данных для запросов, использующих протокол HTTPS с обычной проверкой подлинности. При использовании ПРОТОКОЛА HTTPS и обычной проверки подлинности пароль пользователя шифруется перед отправкой по сети.
// 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;
}
}
Комментарии
Приложения не вызывают этот метод напрямую; Он вызывается с IAuthenticationModule помощью , который отвечает за выполнение проверки подлинности на сервере. Если этот метод возвращает false
значение , IAuthenticationModule не будет выполнять проверку подлинности клиента на сервере.
Этот метод вызывается только для запросов, которые указывают учетные данные или используют WebProxy объект , указывающий учетные данные.