Ich benutze die Asp.net-Identität für Anmelden, Registrieren, Passwort vergessen usw. und der Quellcode stammt von folgendem Link:
Ссылка .
Jetzt habe ich 1 Tabelle, die UserMaster ist und während der Registrierung frage ich nach folgenden Feldern: VollständigerName, E-Mail-ID, Passwort, Kontaktnummer, Geschlecht .
Mein UserMaster Enthält die folgenden Felder: Id, FullName, EmailId, ContactNumber, Geschlecht
Wenn der Benutzer das Registrierungsformular absendet, wird dieser FullName, EmailId, ContactNumber, Gender in UserMaster zusammen mit der Email gespeichert, das Passwort wird in AspnetUser gespeichert.
Meine Registrierungsmethode ist die gleiche wie in den obigen 2 Links angegeben.
Hier können Sie feststellen, dass es keine Beziehung zwischen meinem UserMaster und AspnetUser gibt. Wenn der Benutzer beim Anmelden seine E-Mail-ID eingibt, verwendet er diese Methode await SignInManager.PasswordSignInAsync
, um den Benutzer zu überprüfen Methode gibt Erfolg dann was ich tun wird, ist diese E-Mail-ID verwenden und überprüfen Sie diese E-Mail in meinem UserMaster und wo Übereinstimmung gefunden werden Ich werde diese UserId von UserMaster holen und speichern Sitzung und verwenden Sie meine Anwendung in meiner Login-Methode wie unten :
Ich spreche darüber in meiner Login-Methode:
%Vor%Ist das ein geeigneter Weg oder noch ein besserer Weg und ich möchte das gesamte Benutzerobjekt speichern, anstatt nur die Benutzer-ID zu speichern.
Also kann mir jemand sagen, wie man das mit der Aspnet-Identität macht?
Da Sie Asp.Net Identity verwenden, möchten Sie sessionbezogene Inhalte als Ansprüche speichern. Dies lässt sich sehr einfach mit benutzerdefinierten Ansprüchen erweitern.
Abgesehen davon denke ich, dass es besser wäre, wenn Sie einfach ApplicationUser
auf die zusätzlichen Daten anwenden, wie detailliert hier .
Hier finden Sie ein vollständiges Beispiel für das Hinzufügen von benutzerdefinierten Anspruchstypen zu Ihrer Anwendung.
Schritt 1 - Definieren Sie einen oder mehrere benutzerdefinierte Anspruchstypen für Ihre zusätzlichen Informationen
%Vor%Ein Anspruchstyp ist nur eine eindeutige Zeichenfolge, die den bestimmten Anspruch identifiziert. Hier verwenden wir nur ein ähnliches Format wie die eingebauten Anspruchstypen.
Schritt 2 - Legen Sie während des Anmeldevorgangs Werte für die benutzerdefinierten Anspruchstypen fest
%Vor% Hinweis: Wir verwenden benutzerdefinierte Anspruchstypen, so dass wir die bestehenden Ansprüche NameIdentifier
und Name
beibehalten und daher leicht auf Identitätsinformationen von Asp.Net Identity und unserer benutzerdefinierten% zugreifen können. co_de% table.
Schritt 3 - Fügen Sie die Erweiterungsmethode (n) zu UserMaster
hinzu, damit wir einfach auf unsere benutzerdefinierten Anspruchsdaten zugreifen können
Nichts Besonderes hier. Wir geben einfach IIdentity
als IIdentity
und geben dann entweder den ersten Anspruch des angegebenen ClaimsIdentity
zurück, oder wir geben CustomClaimType
zurück, wenn ein Anspruch nicht existiert.
Schritt 4 - Jetzt können wir sehr einfach auf unsere benutzerdefinierten Anspruchsdaten in Sichten und / oder Controllern zugreifen. Angenommen, Sie möchten den vollständigen Namen aus Ihrer null
-Tabelle anstelle von UserMaster
verwenden? Sie können dies jetzt tun:
Sie können dasselbe auch von einem Controller aus tun.
Sie können hinzufügen als:
%Vor%Für weitere Details können Sie System.Secutity.Claims.ClaimTypes
überprüfenTags und Links asp.net-mvc c# owin asp.net-identity