Ich baue eine ASP.NET MVC-Site, wo ich verwenden, OpenID-Login zu implementieren (Ich habe vollständig Benutzername/Passwort-basierte Anmeldung gelöscht).Verwenden von OpenID (über DotNetOpenAuth) zusammen mit Benutzerrollen und anderen Mitgliedschaftsanbieter-Funktionen
Bisher habe ich meinen Code für das Standard-Benutzername/Passwort-System mit dem ASP.NET-Mitgliedschaftsanbieter geschrieben, wobei ich das Rollensystem, das Profilsystem und das Basisregistrierungssystem verwendet habe. Jetzt, in meiner Migration zu OpenID, sehe ich einige Probleme voraus, insbesondere mit Schnittstelle mit Mitgliedschaft Kontrollen von der ASP.NET-Mitgliedschaftsanbieter zur Verfügung gestellt.
Wenn ich auf das DotNetOpenAuth MVC-Beispiel schaue, sehe ich, dass die einzigen Verweise auf das FormsAuthentication-System darin bestehen, AuthCookie
zu erstellen und später FormsAuthentication.SignOut()
aufzurufen. Daher bin ich mir nicht sicher, ob ich die ASP.NET-Mitgliedschaftsanbieter-Funktionen mit diesem OpenID-System verwenden kann, obwohl ein anderer Teil des Beispielcodes User.Identity.IsAuthenticated
aufruft.
Wird diese OpenID-System-Schnittstelle mit dem ASP.NET-Mitgliedschaftsanbieter? Wenn nicht, kann ich das irgendwie beheben?
Wenn das oben beschriebene ist völlig unmöglich, ich denke, meine nächste Vorgehensweise wäre, nur rollen meine eigenen Datenbanktabellen und manuell den Code schreiben, um sie von meinem Account-Controller zu verwenden. Ich habe bemerkt, dass die Stack Exchange Data Explorer diesen Ansatz nimmt, aber wäre dies der richtige Weg?
EDIT: Nur um sicher zu sein ich die richtige Terminologie bin mit, von „ASP.NET-Mitgliedschaftsanbieter“, meine ich den Anbieter, der die Tabellen durch die aspnet_regsql.exe
Tool generiert verwendet.
Wunderbare Antwort - wird dies heute implementieren. Ich danke dir sehr! –
Und ich kann 'Membership.GetUser()' immer noch verwenden, richtig? –
Ja, Sie können Membership.GetUser() weiterhin verwenden. Sobald Sie den Benutzernamen an RedirectFromLoginPage übergeben, sind Sie im Wesentlichen gleich, was durch die eingebauten Login-Steuerelemente passiert wäre. – jwsample