Udostępnij za pośrednictwem


Uwierzytelnianie formularzy w internetowym interfejsie API ASP.NET

Autor: Mike Wasson

Uwierzytelnianie formularzy używa formularza HTML do wysyłania poświadczeń użytkownika na serwer. Nie jest to standard internetowy. Uwierzytelnianie formularzy jest odpowiednie tylko dla internetowych interfejsów API wywoływanych z aplikacji internetowej, dzięki czemu użytkownik może wchodzić w interakcję z formularzem HTML.

Zalety Wady
  • Łatwe w implementacji: wbudowane w ASP.NET.
  • Używa dostawcy członkostwa ASP.NET, co ułatwia zarządzanie kontami użytkowników.
  • Nie jest standardowym mechanizmem uwierzytelniania HTTP; używa plików cookie HTTP zamiast standardowego nagłówka autoryzacji; niektórzy użytkownicy wyłączają pliki cookie.
  • Trudne do użycia z klientów niebrowserowych. Logowanie wymaga przeglądarki.
  • Poświadczenia użytkownika są wysyłane jako zwykły tekst w żądaniu.
  • Podatne na fałszerzowania żądań między lokacjami (CSRF); wymaga środków anty-CSRF.

Krótko uwierzytelnianie formularzy w ASP.NET działa następująco:

  1. Klient żąda zasobu wymagającego uwierzytelniania.
  2. Jeśli użytkownik nie jest uwierzytelniony, serwer zwraca protokół HTTP 302 (znaleziono) i przekierowuje do strony logowania.
  3. Użytkownik wprowadza poświadczenia i przesyła formularz.
  4. Serwer zwraca inny adres HTTP 302, który przekierowuje z powrotem do oryginalnego identyfikatora URI. Ta odpowiedź zawiera plik cookie uwierzytelniania.
  5. Klient ponownie żąda zasobu. Żądanie zawiera plik cookie uwierzytelniania, więc serwer udziela żądania.

Ilustracja przedstawiająca sposób działania uwierzytelniania formularzy w s P dot Net

Aby uzyskać więcej informacji, zobacz Omówienie uwierzytelniania formularzy.

Używanie uwierzytelniania formularzy z internetowym interfejsem API

Aby utworzyć aplikację korzystającą z uwierzytelniania formularzy, wybierz szablon "Aplikacja internetowa" w kreatorze projektu MVC 4. Ten szablon tworzy kontrolery MVC na potrzeby zarządzania kontami. Możesz również użyć szablonu "Aplikacja jednostronicowa" dostępnego w aktualizacji ASP.NET Fall 2012.

W kontrolerach internetowego interfejsu API można ograniczyć dostęp przy użyciu atrybutu, zgodnie z opisem w temacie Używanie atrybutu [Authorize][Autoryzuj].

Uwierzytelnianie formularzy używa pliku cookie sesji do uwierzytelniania żądań. Przeglądarki automatycznie wysyłają wszystkie odpowiednie pliki cookie do docelowej witryny sieci Web. Ta funkcja sprawia, że uwierzytelnianie formularzy może być potencjalnie narażone na ataki fałszerowania żądań między lokacjami (CSRF), zobacz Zapobieganie atakom fałszerowania żądań między witrynami (CSRF).

Uwierzytelnianie formularzy nie szyfruje poświadczeń użytkownika. W związku z tym uwierzytelnianie formularzy nie jest bezpieczne, chyba że jest używane z protokołem SSL. Zobacz Praca z protokołem SSL w internetowym interfejsie API.