ICredentialPolicy Interfejs

Definicja

Definiuje zasady poświadczeń, które mają być używane dla żądań zasobów, które są wykonywane przy użyciu WebRequest i jej klas pochodnych.

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
Pochodne

Przykłady

Poniższy przykład kodu przedstawia implementację tego interfejsu, która zezwala na wysyłanie poświadczeń tylko dla żądań, które są przeznaczone dla określonych hostów.

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;
    }
}

Uwagi

Zasady poświadczeń określają, czy należy wysyłać poświadczenia podczas wysyłania WebRequest dla zasobu sieciowego, takiego jak zawartość strony sieci Web. Jeśli poświadczenia są wysyłane, serwery wymagające uwierzytelniania klienta mogą podjąć próbę uwierzytelnienia klienta po odebraniu żądania zamiast wysyłania odpowiedzi wskazującej, że wymagane są poświadczenia klienta. Chociaż pozwala to zaoszczędzić rundę na serwerze, ten wzrost wydajności musi być zrównoważony względem ryzyka bezpieczeństwa związanego z wysyłaniem poświadczeń przez sieć. Jeśli serwer docelowy nie wymaga uwierzytelniania klienta, najlepiej nie wysyłać poświadczeń.

Uwaga

ICredentialPolicy zasady są wywoływane tylko wtedy, gdy element WebRequest lub WebProxy skojarzony z żądaniem ma poświadczenia, które nie nullsą . Ustawienie tych zasad nie ma wpływu na żądania, które nie określają poświadczeń.

AuthenticationManager.CredentialPolicy Użyj właściwości , aby ustawić ICredentialPolicy zasady. Metoda IAuthenticationModule , która obsługuje uwierzytelnianie dla żądania, wywoła metodę ShouldSendCredential przed przeprowadzeniem uwierzytelniania. Jeśli metoda zwraca falsewartość , uwierzytelnianie nie jest wykonywane.

Zasady ICredentialPolicy mają wpływ na wszystkie wystąpienia z WebRequest poświadczeniami innych niż null w bieżącej domenie aplikacji. Zasad nie można zastąpić w przypadku poszczególnych żądań.

Metody

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Zwraca wartość wskazującą Boolean , czy poświadczenia klienta są wysyłane z żądaniem zasobu wykonanym przy użyciu wystąpienia WebRequest klasy.

Dotyczy