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 |
---|---|
|
|
Krótko uwierzytelnianie formularzy w ASP.NET działa następująco:
- Klient żąda zasobu wymagającego uwierzytelniania.
- Jeśli użytkownik nie jest uwierzytelniony, serwer zwraca protokół HTTP 302 (znaleziono) i przekierowuje do strony logowania.
- Użytkownik wprowadza poświadczenia i przesyła formularz.
- Serwer zwraca inny adres HTTP 302, który przekierowuje z powrotem do oryginalnego identyfikatora URI. Ta odpowiedź zawiera plik cookie uwierzytelniania.
- Klient ponownie żąda zasobu. Żądanie zawiera plik cookie uwierzytelniania, więc serwer udziela żądania.
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.