Manuelles Überprüfen eines Kennwortzurücksetzungs-Tokens in ASP.NET Identity

8

Ich möchte ein Token zum Zurücksetzen des Kennworts in ASP.NET Identity 2.0 manuell überprüfen. Ich versuche, meine eigene Version von UserManager.ResetPasswordAsync(string userId, string token, string newPassword) zu erstellen, die und IdentityUser anstelle von userId wie folgt verwendet:

%Vor%

Ich bin mir nicht sicher, ob ich das richtig mache, aber hier versuche ich, den Code zu validieren, der dem Benutzer in einem früheren Schritt per E-Mail geschickt wurde. Ich habe den Code / Token, der die E-Mail an den Benutzer sendet, nicht geändert und den Code generiert. Ich gehe davon aus, dass dies die richtige Methode ist, aber das Argument purpose ist falsch. (Ich habe versucht, "ASP.NET Identity" zu übergeben, aber keine Würfel.)

%Vor%

Wenn jemand mich über die Details informieren könnte, wie es funktioniert, oder mich auf Microsofts Quellcode für UserManager.ResetPasswordAsync(IdentityUser user, string token, string newPassword) hinweisen, wäre das sehr zu empfehlen!

    
Jeremy Cook 22.05.2014, 18:14
quelle

2 Antworten

3

Offenbar wurde der Code für Microsoft.AspNet.Identity gemäß dem Codeplex-Repository unter:

nicht nach Open Sourced sortiert

Ссылка

  

Gegenwärtig ist der ASP.NET Identity Framework-Code nicht öffentlich und   wird daher nicht auf dieser Seite veröffentlicht. Wir planen jedoch   Um dies zu ändern, und sobald wir dazu in der Lage sind, wird der Code veröffentlicht   in diesem Repository.

Allerdings habe ich das gefunden, was die Quelle für den UserManager basierend auf den Debug-Symbolen sein könnte:

UserManager-Quellcode

Ich habe auch diese Beiträge gefunden, die helfen könnten:

Implementieren Benutzerdefinierte Passwortrichtlinie mit ASP.NET Identity

UserManager-Klassendokumentation

Dokumentation der IUserTokenProvider-Schnittstelle

    
Matthew at Critical Cognition 22.05.2014, 19:18
quelle
8

Ich habe mein Problem überwunden, indem ich den Zweck auf "ResetPassword" gesetzt habe.

Unten ist ein Ausschnitt des Endergebnisses, falls jemand etwas Ähnliches machen möchte. Es ist eine Methode in meiner Klasse ApplicationUserManager . Beachten Sie jedoch, dass einige der von Microsoft implementierten Ausnahmebehandlungen fehlen oder nicht lokalisiert sind, da auf bestimmte private Variablen, Methoden und Ressourcen, die in ihrem Code verwendet werden, nicht zugegriffen werden kann. Es ist bedauerlich, dass sie das Zeug nicht geschützt haben, so dass ich darauf hätte kommen können. Der fehlende ThrowIfDisposed -Methoden-Aufruf ist insbesondere für mich interessant (und Basar). Offensichtlich erwarten sie Methodenaufrufe, nachdem eine Instanz entfernt wurde, um eine freundlichere Fehlermeldung zu liefern und das Unerwartete zu vermeiden.

%Vor%     
Jeremy Cook 22.05.2014 20:11
quelle