Ich habe eine Methode erstellt, die Benutzer beim Zurücksetzen des Passworts eine E-Mail an den Benutzer sendet. Ich möchte jetzt eine URL generieren, die ResetPassword.cshtml öffnet von der Website zu öffnen. Ich kann die Website nicht aufrufen, da die Website nach Cookies fragt, die ich nicht habe.Wie kann ich die Funktion zum Zurücksetzen des Passworts in Web API 2 verwenden?
4
A
Antwort
3
Zuerst eine URL für Zurücksetzen des Passworts Seite erzeugen:
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
//For MVC controller
var callbackUrl = Url.Action("ResetPassword", "Account", new { code = code }, protocol: Request.Url.Scheme);
//For Web API controller
var callbackUrl = Url.Link("Default", new { Controller = "Account", Action = "ResetPassword", code = code });
Nachdem es MVC-Controller mit Reset-Passwort-Methode erstellen:
[AllowAnonymous]
public ActionResult ResetPassword(string code)
{
return code == null ? View("Error") : View();
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
if (user == null)
{
// Don't reveal that the user does not exist
}
var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
if (result.Succeeded)
{
//...
}
AddErrors(result);
return View();
}
Dann das Modell erstellen neues Passwort akzeptieren:
public class ResetPasswordViewModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public string Code { get; set; }
}
Schließlich erstellen Sie die Ansicht für das Zurücksetzen des Passworts:
@model TreeTag.Models.ResetPasswordViewModel
@{
ViewBag.Title = "Reset password";
}
<h2></h2>
@using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Reset your password.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
@Html.HiddenFor(model => model.Code)
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
</div>
</div>
<div id="confirm_password" class="form-group">
@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Reset" />
</div>
</div>
}
Verwandte Themen
- 1. Codeigniter - Formular zum Zurücksetzen des Passworts
- 2. ASP.NET web api 2 Zurücksetzen der Token-Authentifizierung beim Zurücksetzen/Ändern des Passworts
- 3. Temporäre URL zum Zurücksetzen des Passworts generieren
- 4. Django + Formular zum Zurücksetzen des Passworts
- 5. Symfony FOSUserBundle Link zum Zurücksetzen des Passworts
- 6. Wie erstelle ich einen Link zum Zurücksetzen des Passworts?
- 7. Zurücksetzen des Passworts in codeigniter
- 8. Fehler beim Zurücksetzen des Passworts
- 9. Fehler beim Zurücksetzen des Passworts
- 10. in Zurücksetzen des Passworts von Laravel 5
- 11. Sichere Möglichkeiten zum Zurücksetzen des Passworts oder zum Zurückgeben des alten Passworts
- 12. "temporäre" Anmeldedaten beim Zurücksetzen des Passworts?
- 13. Wie kann ich den Link zum Zurücksetzen des Passworts in Laravel5.3 ändern?
- 14. Laravel: Zurücksetzen des Passworts ohne Umleitungsantwort
- 15. Rückgängig-Funktion zum Zurücksetzen des Makros zum Zurücksetzen des Inhalts
- 16. Laravel: Welche Änderungen zum Zurücksetzen des Passworts erforderlich sind
- 17. Django Authentifizierungsproblem nach dem Zurücksetzen des Passworts
- 18. Verwenden von Base SAS zum Validieren des Windows-Passworts
- 19. Laravel 5.3 - Ändern Auth Routen für Zurücksetzen des Passworts
- 20. Wie Hash-Code an die E-Mail zum Zurücksetzen des Passworts Yii2 Basic senden?
- 21. Wie die Access-Token für das Zurücksetzen des Passworts in LoopBack gesetzt mit der AngularJS SDK
- 22. Zurücksetzen des Passworts in der Passport-lokalen Strategie in Sails.js
- 23. Wie kann ich die benutzerdefinierte E-Mail ändern, nachdem der Link zum Zurücksetzen des Passworts gesendet wurde
- 24. Automatisierungsskript zum Ändern des Passworts in Selen
- 25. setPasswordAttribute stört das Zurücksetzen des Passworts (Laravel 5.2)
- 26. Link erhalten Fehler beim Zurücksetzen des Passworts mit fosuserbundle, symfony2
- 27. Ausnahme zum Ändern des Passworts in ASP.NET
- 28. Wie kann ich die GetWindowText-API-Funktion in Powershell verwenden?
- 29. FOSUserBundle fehlt Parameter Token für das Zurücksetzen des Passworts Problem
- 30. zeigen DEVISE Authentifizierungsschlüssel (E-Mail-Adresse) beim Zurücksetzen des Passworts
Hallo Volen, Wie kann meine Web-API [ValidateAntiForgeryToken] , die auf Plätzchen arbeitet .. – cell
es nutzen zu können, haben MVC lib (System.Web.MVC.dll) zu einem Projekt hinzuzufügen. Es sollte dir helfen. – Volen
Wie kann ich die URL zeigen, um die Reset-Webseite auf der Website zu öffnen. – cell