Udostępnij za pomocą


Uwierzytelnianie internetowe

Klasy System.Net obsługują różne mechanizmy uwierzytelniania klienta, w tym standardowe metody uwierzytelniania internetowego podstawowe, szyfrowane, negocjowane, NTLM i Kerberos, a także niestandardowe metody, które można utworzyć.

Poświadczenia uwierzytelniania są przechowywane w klasach NetworkCredential i CredentialCache które implementują interfejs ICredentials. Gdy jedna z tych klas jest odpytywana pod kątem poświadczeń, zwraca wystąpienie klasy NetworkCredential. Proces uwierzytelniania jest zarządzany przez klasę AuthenticationManager , a rzeczywisty proces uwierzytelniania jest wykonywany przez klasę modułu IAuthenticationModule uwierzytelniania, która implementuje interfejs. Aby można było użyć modułu uwierzytelniania niestandardowego, należy go zarejestrować za pomocą AuthenticationManager; moduły dla metod uwierzytelniania podstawowego, szyfrowania, negocjacji, NTLM i Kerberos są rejestrowane domyślnie.

NetworkCredential przechowuje zestaw poświadczeń skojarzonych z pojedynczym zasobem internetowym zidentyfikowanym przez identyfikator URI i zwraca je w odpowiedzi na każde wywołanie GetCredential metody . Klasa NetworkCredential jest zwykle używana przez aplikacje, które uzyskują dostęp do ograniczonej liczby zasobów internetowych lub aplikacji, które używają tego samego zestawu poświadczeń we wszystkich przypadkach.

Klasa CredentialCache przechowuje kolekcję poświadczeń dla różnych zasobów sieci Web. Po wywołaniu metody GetCredentialCredentialCache zwracany jest prawidłowy zestaw poświadczeń, określony przez identyfikator URI zasobu internetowego oraz żądany schemat uwierzytelniania. Aplikacje korzystające z różnych zasobów internetowych z różnymi schematami uwierzytelniania korzystają z CredentialCache klasy , ponieważ przechowuje wszystkie poświadczenia i udostępnia je zgodnie z żądaniem.

Gdy zasób internetowy żąda uwierzytelniania, ta metoda WebRequest.GetResponse wysyła element WebRequest do elementu AuthenticationManager wraz z żądaniem poświadczeń. Żądanie jest następnie uwierzytelniane zgodnie z następującym procesem:

  1. Metoda AuthenticationManager wywołuje metodę Authenticate dla każdego z zarejestrowanych modułów uwierzytelniania w kolejności, w której zostały zarejestrowane. Moduł AuthenticationManager wykorzystuje pierwszy moduł, który nie zwraca null, do przeprowadzenia procesu uwierzytelniania. Szczegóły procesu różnią się w zależności od typu modułu uwierzytelniania.

  2. Po zakończeniu procesu uwierzytelniania moduł uwierzytelniania zwraca Authorization do WebRequest, który zawiera informacje wymagane do uzyskania dostępu do zasobu internetowego.

Niektóre schematy uwierzytelniania mogą uwierzytelniać użytkownika bez uprzedniego złożenia żądania dotyczącego zasobu. Aplikacja może zaoszczędzić czas, wstępnie uwierzytelniając użytkownika za pomocą zasobu, eliminując w ten sposób co najmniej jedną rundę na serwerze. Może również przeprowadzić uwierzytelnianie podczas uruchamiania programu, aby móc szybciej reagować na użytkownika. Schematy uwierzytelniania, które mogą używać wstępnego uwierzytelniania, mają właściwość PreAuthenticate ustawioną na true.

Zobacz także