ICredentialPolicy Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 null
są . 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 false
wartość , 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. |