Hat jemand ein benutzerdefiniertes Token für die E-Mail-Validierung verwendet, das die websecurity.CreateAccount-Methode nicht zuvor verwenden muss?
Absolut - wir tun dies für alle unsere E-Mail-Verifizierungstoken, die Teil unseres CreateAccount-Prozesses sind. Man könnte so etwas tun die Token zu generieren:
public static string GenerateEmailToken()
{
// generate an email verification token for the user
using (RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider())
{
byte[] data = new byte[16];
provider.GetBytes(data);
return Convert.ToBase64String(data);
}
}
ich gehört, dass, die in unserer „CreateAccountResponse“, das ermöglicht die Steuerung abholen und senden Sie die Bestätigungsmail mit dem Token dann - Sie geben ein Idee:
public class CreateAccountResponse
{
public bool CreatedSuccessfully { get; set; }
public string EmailVerificationToken { get; set; }
}
Und dann behandeln wir das hier:
CreateAccountResponse response = _mediator.Send(createAccountCommand);
if (response.CreatedSuccessfully)
{
if (!string.IsNullOrEmpty(response.EmailVerificationToken))
{
// Send the verification email if a token is present
SendVerificationEmail(model.Email, response.EmailVerificationToken);
}
return RedirectToAction("Settings", "Account");
}
das Token dann verwendet wird, wir die vollständig formatierte URL erstellen, in der E-Mail senden Sie an diese schließen Benutzer
private void SendVerificationEmail(string emailAddress, string token)
{
try
{
// Url.Action will encode parameters as they are needed.
var verificationUrl = Url.Action("VerifyAccount", "Account", new { token = token }, Request.Url.Scheme);
_userMailer.DeliverVerification(emailAddress, verificationUrl);
}
catch (Exception ex)
{
_logger.ErrorLog.Log(new VerificationError(ex));
}
}
Sobald sie den Link in der E-Mail klicken, unsere „VerifyAccount“ Route nimmt den Token und ermöglicht es uns, den Rest des Verifizierungsprozesses abzuschließen.
Außerdem ist es eine sehr gut Idee, einen Ablauf für Ihre Überprüfung Token für Sicherheitszwecke einstellen - 24 bis 48 Stunden in der Regel ein akzeptabler Zeitrahmen ist der Benutzer erhält die E-Mail, klicken Sie auf den Link, um zu ermöglichen, und verifiziere ihren Account.
Dies ist die Klärung ich suchte. fantastisch dank einer Mühle. Zumindest jetzt weiß ich, dass ich ein Token mit meiner Benutzertabelle speichern kann, indem ich dieses Modell ansehe. Die Beispiele, die ich anschaue, übergehen alle grundlegenden Fragen, die ich habe, wie einige der Framework-Methoden solche Probleme validieren und behandeln. Der Grund, warum ich dachte, es wäre gut, hier zu fragen, war, dass ich mit einem anderen Entwickler in Java sprach, dass es manchmal nicht schadet, Cutom-Logik zu schreiben, damit Sie nicht vollständig von allen Framework-Methoden abhängig sind und die Kontrolle darüber verlieren . Vielen Dank :) – Brian
Kein Problem, froh, dass geholfen hat. Da dies Ihre Frage beantwortet hat, sollten Sie sie als Angenommene Antwort markieren. – X3074861X