Wie wird die Sitzungsverwaltung in aspnet identity durchgeführt?

8

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 :

%Vor%

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?

    
Learning-Overthinker-Confused 01.10.2015, 05:48
quelle

3 Antworten

20

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

%Vor%

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:

%Vor%

Sie können dasselbe auch von einem Controller aus tun.

    
Brendan Green 07.10.2015, 11:48
quelle
2

Sie können hinzufügen als:

%Vor%

Für weitere Details können Sie System.Secutity.Claims.ClaimTypes

überprüfen     
JavaScript Linq 09.10.2015 10:51
quelle
1

Sie können dies tun:

%Vor%     
C.Fasolin 01.10.2015 06:35
quelle