在WebApi中生成重置密码链接

loo*_*oop 18 asp.net asp.net-web-api asp.net-web-api2

我想生成重置密码链接以发送到用户的电子邮件,该电子邮件将打开ResetPassword页面.在此页面上,我将填写有关新密码的详细信息,然后确认密码.

为此我遵循了这个链接

但是有一个我无法在我的web api项目中找到的Url.Action方法.

var callbackUrl = Url.Action(
               "ConfirmEmail", "Account", 
               new { userId = user.Id, code = code }, 
               protocol: Request.Url.Scheme);
Run Code Online (Sandbox Code Playgroud)

Hase任何人在web api中完成了重置密码部分?我需要一些帮助.

小智 6

您可以Url.Link在Web API 2.0中使用

var callbackUrl = Url.Link("Default", new { Controller = "Account", 
                  Action = "ConfirmEmail", userId = user.Id, code = code });
Run Code Online (Sandbox Code Playgroud)


Cha*_*ati 0

尝试以下操作:

var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
        var callbackUrl = Url.Action("ResetPassword", "Account", 
        new { UserId = user.Id, code = code }, protocol: Request.Url.Scheme);
        await UserManager.SendEmailAsync(user.Id, "Reset Password", 
        "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>");        
        return View("ForgotPasswordConfirmation");
Run Code Online (Sandbox Code Playgroud)

代码源自“使用 ASP.NET Identity (C#) 进行帐户确认和密码恢复”。