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?
ASP.NET Identity verwendet UserTokenProvider
von UserManager
, um das Token zu generieren und zu validieren. Grundsätzlich ruft es:
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.
Tags und Links c# asp.net asp.net-identity-2