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 ist nur für Web-APIs geeignet, die von einer Webanwendung aufgerufen werden, damit der Benutzer mit dem HTML-Formular interagieren kann.

Vorteile Benachteiligungen
  • Einfach zu implementieren: Integriert in ASP.NET.
  • Verwendet ASP.NET Mitgliedschaftsanbieters, wodurch die Verwaltung von Benutzerkonten vereinfacht wird.
  • Kein standardmäßiger HTTP-Authentifizierungsmechanismus; verwendet HTTP-Cookies anstelle des Standardautorisierungsheaders; einige Benutzer deaktivieren Cookies.
  • Schwer zu verwenden von Nichtbrowserclients. Für die Anmeldung ist ein Browser erforderlich.
  • Benutzeranmeldeinformationen werden als Klartext in der Anfrage gesendet.
  • Anfällig für standortübergreifende Anforderungsfälschungen (CSRF); erfordert Anti-CSRF-Maßnahmen.

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 zurück, der an den ursprünglichen URI zurückleitet. Diese Antwort enthält ein Authentifizierungscookie.
  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 Web-API

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

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

Bei der Forms-Authentifizierung wird ein Sitzungscookie zum Authentifizieren von Anforderungen verwendet. Browser senden automatisch alle relevanten Cookies an die Zielwebsite. Dieses Feature macht die Formularauthentifizierung potenziell anfällig für Websiteanforderungsfälschungsangriffe (CSRF) siehe Verhindern von Cross-Site Request Forgery (CSRF)-Angriffen.

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