ICredentialPolicy Интерфейс

Определение

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

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
Производный

Примеры

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

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

   virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ /*authModule*/ )
   {
      Console::WriteLine( L"Checking custom credential policy." );
      if ( request->RequestUri->Host->Equals( L"www.contoso.com" ) || challengeUri->IsLoopback == true )
            return true;

      return false;
   }
};
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 == true)
            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.

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