MVC wird mit einem ActionFilter geliefert Um Identitätsauthentifizierung in Asp.NET WebForm zu erreichen, stellt Microsoft uns drei Möglichkeiten zur Verfügung, von denen die am häufigsten genutzte Formular-Authentifizierung ist, die mit den entsprechenden Informationen konfiguriert werden muss. Zum Beispiel die folgenden Konfigurationsinformationen:
Das bedeutet, dass unsere Anmeldeseite Login.aspx ist, die Standardseite nach erfolgreichem Login Default.aspx ist und unsere Benutzerinformationen zwei Methoden verwenden: Verifizierung und Verschlüsselung. Und das Wichtigste ist, dass wir die Autorisierungsmethode schreiben müssen (die untenstehende Autorisierung muss geschrieben werden, sonst ist es nutzlos, nur die Formular-Authentifizierung zu verwenden und dann relevante Attribute festzulegen), alle anonymen Nutzer abzulehnen und nur angemeldete Nutzer normal darauf zugreifen können. Danach setzen wir den Login-Button so, dass er den Benutzernamen in den Cookie schreibt (also FormsAuthentication.SetAuthCookie(name, false) ausführt; Das wars. 0 In Asp.Net MVC können wir auch Formular-Authentifizierung verwenden, aber wenn du das in WebForm machst, funktioniert es nicht. Zum Beispiel konfigurieren Sie die Informationen folgendermaßen:
Sie richten einen Login in Ihrem Login.aspx ein, um Login im AccountController auszulösen, um sich anzumelden, wobei der Login-Code:
Nachdem du das getan hast, wirst du feststellen, dass dein Login nicht ausgeführt wird. Was ist der Grund? Warum funktioniert dieselbe Einstellung in MVC nicht? Der Grund ist, dass der Mechanismus anders ist, weil man eine Autorisierungsmethode eingerichtet hat, die Login unzugänglich macht. Wie machen wir das also? Tatsächlich haben wir in Asp.Net MVC eine bessere Möglichkeit, all das zu tun, wir brauchen keine Autorisierungsmethode, was bedeutet, dass unsere Konfigurationsinformationen so aussehen:
Es ist nicht nötig anzugeben, dass anonyme Nutzer sich nicht anmelden dürfen usw. Natürlich wirst du feststellen, dass das allein nicht ausreicht, aber wir müssen dem System mitteilen, welche Daten eingeloggt werden müssen, um darauf zugreifen zu können. Du denkst vielleicht, o()〈))o Oh, das ist zu viel Aufwand. Es ist nicht so, es ist ganz einfach, wir müssen nur [Autorisieren] auf der Aktion markieren, die authentifiziert werden muss. Zum Beispiel habe ich zwei Seiten im Home-Ordner, Index und Home, und ich möchte, dass der Index authentifiziert wird, um darauf zuzugreifen, aber Home nicht, daher muss ich dem Index nur das Aktions-Tag [Authorize] geben, das heißt:
Dadurch kann Index nach dem Einloggen auf Index zugegriffen werden, während Home nicht eingeloggt werden muss. Wenn du Rollen autorisieren musst, kannst du die Rolle beim Markieren von Autorisieren angeben (z. B. [Authorize(Role=Administrators)]), aber du musst den von Microsoft bereitgestellten Mitgliedschaftsmechanismus nutzen, weil deine Rolle nicht umsonst existieren kann, sondern in der entsprechenden Datenbank, die ich in einem anderen Blog erwähnt habe. Anpassen Sie den ActionFilter Manchmal können Sie diese Art der Authentifizierung nicht erfüllen, oder wenn Sie das Gefühl haben, nicht flexibel genug zu sein, ist das egal, Asp.Net MVC erlaubt Ihnen, Ihren ActionFilter anzupassen. Zum Beispiel passe ich die Authentifizierung jetzt an:
Falls Benutzerverwaltung erforderlich ist, werde ich die rollenbezogenen Filter definieren:
Tatsächlich werden Sie feststellen, dass die beiden oben genannten Attribute tatsächlich durch MVCs integrierte Authorized gelöst wurden, und hier sagen wir Ihnen hauptsächlich, dass Sie sie bei Bedarf erweitern können. Das war's für heute! Quellcode-Download: FormsAuthenticationMvc
|