Freigeben über


Formularauthentifizierung in ASP.NET-Web-API

von Mike Wasson

Die Formularauthentifizierung verwendet ein HTML-Formular, um die Anmeldeinformationen des Benutzers an den Server zu senden. Es handelt sich nicht um einen Internetstandard. Die Formularauthentifizierung eignet sich nur für Web-APIs, die von einer Webanwendung aufgerufen werden, sodass der Benutzer mit dem HTML-Formular interagieren kann.

Vorteile Nachteile
  • Einfach zu implementieren: Integriert in ASP.NET.
  • Verwendet ASP.NET Mitgliedschaftsanbieters, der die Verwaltung von Benutzerkonten vereinfacht.
  • Kein Standard-HTTP-Authentifizierungsmechanismus; verwendet HTTP-Cookies anstelle des Standardautorisierungsheaders; einige Benutzer deaktivieren Cookies.
  • Die Verwendung von Nichtbrowserclients ist schwierig. Für die Anmeldung ist ein Browser erforderlich.
  • Benutzeranmeldeinformationen werden in der Anforderung als Klartext gesendet.
  • Anfällig für cross-site Request Forgery (CSRF); erfordert Maßnahmen zur Bekämpfung der CSRF.

Kurz gesagt funktioniert die Formularauthentifizierung in ASP.NET wie folgt:

  1. Der Client fordert eine Ressource an, die eine Authentifizierung erfordert.
  2. Wenn der Benutzer nicht authentifiziert ist, gibt der Server HTTP 302 (Gefunden) zurück und leitet zu einer Anmeldeseite um.
  3. Der Benutzer gibt Anmeldeinformationen ein und sendet das Formular.
  4. Der Server gibt einen weiteren HTTP 302-Wert zurück, der zurück an den ursprünglichen URI weiterleitet. Diese Antwort enthält ein Authentifizierungscooky.
  5. Der Client fordert die Ressource erneut an. Die Anforderung enthält das Authentifizierungscookies, sodass der Server die Anforderung gewährt.

Abbildung der Funktionsweise der Formularauthentifizierung in A S P dot Net

Weitere Informationen finden Sie unter Übersicht über die Formularauthentifizierung.

Verwenden der Formularauthentifizierung mit der Web-API

Um eine Anwendung zu erstellen, die die Formularauthentifizierung verwendet, wählen Sie die Vorlage "Internetanwendung" im MVC 4-Projekt-Assistenten aus. Mit dieser Vorlage werden MVC-Controller für die Kontoverwaltung erstellt. Sie können auch die Vorlage "Single Page Application" verwenden, die im ASP.NET Herbst 2012 Update verfügbar ist.

In Ihren Web-API-Controllern können Sie den Zugriff mithilfe des [Authorize] -Attributs einschränken, wie unter Verwenden des [Authorize]-Attributs beschrieben.

Die Formularauthentifizierung verwendet ein Sitzungscooky, um Anforderungen zu authentifizieren. Browser senden automatisch alle relevanten Cookies an die Zielwebsite. Dieses Feature macht die Formularauthentifizierung potenziell anfällig für CSRF-Angriffe (Cross-Site Request Forgery, Cross-Site Request Forgery), siehe Verhindern von Cross-Site Request Forgery (CSRF)-Angriffen.

Die Formularauthentifizierung verschlüsselt die Anmeldeinformationen des Benutzers nicht. Daher ist die Formularauthentifizierung nur dann sicher, wenn sie mit SSL verwendet wird. Weitere Informationen finden Sie unter Arbeiten mit SSL in der Web-API.