Прочитать на английском

Поделиться через


ICredentialPolicy Интерфейс

Определение

Определяет политику учетных данных, используемую для запросов, создаваемых с помощью WebRequest и соответствующих производных классов.

public interface ICredentialPolicy
Производный

Примеры

В следующем примере кода показана реализация этого интерфейса, которая позволяет отправлять учетные данные только для запросов, предназначенных для конкретных узлов.

public class SelectedHostsCredentialPolicy: ICredentialPolicy
{
    public SelectedHostsCredentialPolicy()
    {
    }

    public virtual bool ShouldSendCredential(Uri challengeUri,
        WebRequest request,
        NetworkCredential credential,
        IAuthenticationModule authModule)
    {
        Console.WriteLine("Checking custom credential policy.");
        if (request.RequestUri.Host == "www.contoso.com" ||
            challengeUri.IsLoopback)
            return true;

        return false;
    }
}

Комментарии

Политика учетных данных определяет, следует ли отправлять учетные данные при отправке WebRequest для сетевого ресурса, например содержимого веб-страницы. При отправке учетных данных серверы, требующие проверки подлинности клиента, могут попытаться проверить подлинность клиента при получении запроса, а не отправлять ответ, указывающий, что учетные данные клиента необходимы. Хотя это позволяет сэкономить круговой путь к серверу, повышение производительности должно быть сбалансировано с риском безопасности, присущим отправке учетных данных по сети. Если целевой сервер не требует проверки подлинности клиента, рекомендуется не отправлять учетные данные.

Примечание

ICredentialPolicy Политики вызываются только в WebRequest том случае, если объект или , связанный WebProxy с запросом, имеет учетные данные, которые не nullявляются . Установка этой политики не влияет на запросы, не указывающие учетные данные.

Используйте свойство , AuthenticationManager.CredentialPolicy чтобы задать ICredentialPolicy политику. Объект IAuthenticationModule , обрабатывающий проверку подлинности для запроса, вызывает ShouldSendCredential метод перед выполнением проверки подлинности. Если метод возвращает false, проверка подлинности не выполняется.

Политика ICredentialPolicy влияет на все экземпляры с учетными данными WebRequest , не имеющими значения NULL, в текущем домене приложения. Политику нельзя переопределить для отдельных запросов.

Методы

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Возвращает объект Boolean, который указывает, отправляются ли учетные данные клиента вместе с запросом ресурса, сделанного с помощью экземпляра класса WebRequest.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1