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


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.

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