Benutzerdefiniertes E-Mail-Bestätigungs-Token

8

Ich benutze das Identity 2.0 Framework für die Benutzerverwaltung.
Leider kann in meinem Anwendungsfall eine Kontoaktivierung / ein Zurücksetzen des Kennworts nicht über einen direkten Link durchgeführt werden, so dass der Benutzer den Code aus seiner E-Mail kopieren und in die Website einfügen müsste.

Der Code, der von der Standardmethode UserManager von GenerateEmailConfirmationTokenAsync generiert wird, ist sehr lang und umfasst etwa 3 Textzeilen. Ich habe versucht, diese Methode zu überschreiben und einen kürzeren Code zu erzeugen, der benutzerfreundlicher ist. Dies funktioniert nicht, da die Methode ConfirmEmailAsync immer "ungültiges Token" zurückgibt (diese Methode ruft die Methode GenerateEmailConfirmationTokenAsync überhaupt nicht auf).

Ich weiß nicht, wie der Bestätigungscode gespeichert ist, und ich bevorzuge den standardmäßigen Speichermechanismus von Identity Framework, anstatt ihn manuell in der Datenbank zu speichern.

Da das Identity 2.0-Framework eine geschlossene Quelle ist, bin ich mir nicht sicher, wie es weitergehen soll. Ist es möglich, benutzerdefinierte (kürzere) Bestätigungscodes zu generieren und welche Methoden sollte ich zusätzlich zu dem, was ich bereits getan habe, außer Kraft setzen?

    
Cloud 28.07.2014, 11:18
quelle

1 Antwort

13

ASP.NET Identity verwendet UserTokenProvider von UserManager , um das Token zu generieren und zu validieren. Grundsätzlich ruft es:

%Vor%

um das Token zu generieren und

%Vor%

um es zu überprüfen.

Sie können also Ihre eigene IUserTokenProvider<TUser, TKey> implementieren oder die Standardversion erweitern und als UserManager.UserTokenProvider festlegen.

    
ChrFin 28.07.2014, 11:36
quelle

Tags und Links