So verwenden Sie die neue MVC5-Authentifizierung mit der vorhandenen Datenbank

9

Ich habe mir die aktuelle Literatur angeschaut, aber ich habe Mühe, genau zu trainieren, wie das neue IdentityStore -System mit Ihrer eigenen Datenbank funktioniert.

Die Benutzertabelle meiner Datenbank heißt tblMember und eine Beispielklasse unterhalb.

%Vor%

Derzeit melden sich Benutzer mit der membership_id an, die eindeutig ist, und dann verwende ich die ID im gesamten System, das der Primärschlüssel ist. Ich kann kein Benutzername-Szenario für die Anmeldung verwenden, da es auf diesem System nicht eindeutig genug ist.

Mit den Beispielen, die ich gesehen habe, sieht es so aus, als ob das System für mich recht formbar ist, aber ich kann derzeit nicht trainieren, wie ich das lokale Login benutze, um meine tblmember -Tabelle zur Authentifizierung mit membership_id zu verwenden Zugriff auf den tblMember-Eintrag von diesem Benutzer über die Benutzereigenschaft.

Ссылка

    
Tim 14.07.2013, 17:45
quelle

1 Antwort

4

Wenn Sie EF verwenden, sollten Sie in etwa so etwas tun können:

%Vor%

Grundsätzlich wird der lokale Passwortspeicher im neuen System als IUserSecretStore bezeichnet. Sie sollten in der Lage sein, Ihren Entitätstyp in den AccountController-Konstruktor einzufügen, vorausgesetzt, Sie haben alles korrekt implementiert:

%Vor%

Beachten Sie, dass die User-Eigenschaft die Ansprüche des Benutzers enthält und der NameIdentifier-Claim der IUser.Id-Eigenschaft im Identity-System zugeordnet wird. Das ist nicht direkt an den IUserSecret gebunden, der nur ein Benutzername / geheimer Speicher ist. Das System modelliert ein lokales Passwort als lokale Anmeldung mit providerKey = Benutzername und loginProvider="Lokal"

Bearbeiten: Hinzufügen eines Beispiels für einen benutzerdefinierten Benutzer

%Vor%

BEARBEITEN # 2: Es gibt auch einen Fehler in der Implementierung von IdentityAuthenticationmanager.GetUserClaims, der an Benutzer statt an IUser übergeben wird, so dass benutzerdefinierte Benutzer, die nicht vom Benutzer ausgehen, nicht funktionieren.

>

Hier ist der Code, den Sie zum Überschreiben verwenden können:

%Vor%     
Hao Kung 15.07.2013 23:02
quelle