Hinzufügen von ASP.NET MVC5 Identity Authentication zu einem vorhandenen Projekt
Ich habe schon viele ähnliche Seiten im web, aber die meisten von Ihnen nutzen ein neues Projekt anstelle einer bestehenden, oder haben nicht die notwendigen Funktionen. So, ich habe eine vorhandene MVC 5
Projekt und integrieren wollen ASP.NET MVC5 Identität mit log-in, E-Mail-Bestätigung und Passwort-zurücksetzen Funktionen.
Zusätzlich zu dieser, ich brauche auch erstellen, alle notwendigen Tabellen auf der Datenbank, d.h. Benutzer, Rollen, Gruppen, etc. (Ich benutze EF Code First-in meinem Projekt). Ist es ein Artikel oder ein Beispiel, das entspricht diesen Anforderungen? Jeder Vorschlag würde geschätzt werden. Vielen Dank im Voraus...
InformationsquelleAutor der Frage Clint Eastwood | 2015-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konfigurieren der Identität zu Ihrem vorhandenen Projekt ist keine schwierige Sache. Sie müssen installieren einige NuGet-Paket und einige kleine Konfiguration.
Installieren Sie zuerst diese NuGet-Pakete im Paket-Manager-Konsole:
Hinzufügen einer Benutzer-Klasse und mit
IdentityUser
Vererbung:Tun, die gleiche Sache für die Rolle:
Ändern Sie Ihre
DbContext
übergeordneten formDbContext
zuIdentityDbContext<AppUser>
wie diese:Wenn Sie dieselbe Verbindungszeichenfolge und aktiviert die migration EF erstellen Sie die notwendigen Tabellen für Sie.
Optional könnte man soweit
UserManager
fügen Sie Ihre gewünschte Konfiguration und Anpassung:Da Identität basiert auf OWIN müssen Sie konfigurieren OWIN zu:
Hinzufügen einer Klasse
App_Start
Ordner (oder irgendwo anders, wenn Sie wollen). Diese Klasse wird von OWINFast fertig, fügen Sie einfach diese Zeile code auf Ihre
web.config
- Datei, so OWIN konnte feststellen, dass Ihr Start-Klasse.Nun im gesamten Projekt verwenden könnte, die Identität genauso wie bei einem neuen Projekt bereits installiert ist, indem VS. Überlegen Sie login-Aktion zum Beispiel
Könnten Sie Rollen und das hinzufügen, um Ihre Benutzer:
Könnte man hinzufügen, jeder Rolle, jedem Benutzer wie diese:
Mithilfe
Authorize
Sie bewachen konnten, Ihre Aktionen oder Controller:oder
Außerdem können Sie installieren zusätzliche Paket und konfigurieren Sie Sie, um Ihre Anforderung zu erfüllen wie
Microsoft.Owin.Security.Facebook
oder was immer Sie möchten.Hinweis: vergessen Sie nicht, fügen Sie die relevanten namespaces, um Ihre Dateien:
Konnte man auch sehen, meine anderen Antworten wie diese und diese für die erweiterte Nutzung der Identität.
InformationsquelleAutor der Antwort Sam Farajpour Ghamari
Dies ist, was ich Tat, zu integrieren, die Identität mit einer bereits vorhandenen Datenbank.
Erstellen Sie eine Beispiel-MVC-Projekt mit MVC-Vorlage. Dieser hat alle benötigten Codes für das Identity-Umsetzung - Start.Auth.cs, IdentityConfig.cs, Konto-Controller-code, Verwalten, Controller, Modelle und Verwandte Ansichten.
Installieren Sie die notwendigen nuget-Pakete für Identität und OWIN. Sie werden eine Vorstellung bekommen, sehen die Verweise im sample-Projekt und die Antwort von @Sam
Kopieren Sie alle diesen code, um Ihr vorhandenes Projekt. Bitte beachten Sie, vergessen Sie nicht, fügen Sie die "DefaultConnection" connection-string für die Identität Karte, um Ihre Datenbank. Bitte überprüfen Sie die ApplicationDBContext Klasse in IdentityModel.cs dort findest du den Verweis auf "DefaultConnection" connection string.
Dies ist das SQL-Skript lief ich auf meiner bestehenden Datenbank zu erstellen, die die notwendigen Tabellen:
Überprüfen Sie und lösen Sie alle verbleibenden Fehler und Sie sind erledigt. Identität wird den rest erledigen 🙂
InformationsquelleAutor der Antwort Shyamal Parikh
Empfehle ich IdentityServer.Dies ist ein .NET Foundation Projekt und umfasst viele Themen, über die Authentifizierung und Autorisierung.
Übersicht
IdentityServer ist .NET/Katana-basierte framework und hostable Komponente, ermöglicht die Implementierung von single sign-on und access control für moderne web-Anwendungen und APIs mithilfe von Protokollen wie OpenID Connect und OAuth2. Es unterstützt eine Breite Palette von Kunden wie mobile -, web -, Wellness-und desktop-Anwendungen und ist erweiterbar, um die integration in neue und bestehende Architekturen.
Weitere Informationen, z.B.
Twitter, Facebook etc)
check-out die Dokumentation und die Proben.
InformationsquelleAutor der Antwort TotPeRo