如何使用ASP.Net标识重置web API中的密码

如何使用ASP.Net标识重置web API中的密码,asp.net,asp.net-identity,one-time-password,reset-password,Asp.net,Asp.net Identity,One Time Password,Reset Password,我已经为电子商务网站开发了一个web API。在忘记密码的情况下,我必须对密码Rest实施双因素身份验证。我正在执行以下步骤: a) 单击忘记密码,系统将OTP作为SMS发送到手机 b) 我的webapi还将此OTP发送到移动客户端。 c) 用户在移动客户端输入OTP,然后确认。 d) 移动客户端验证输入的OTP和发送的OTP。 e) 确认后,系统需要向用户提供重置密码的选项。 f) 对于重置密码,我在AccountController中使用MVCWebAPI的内置方法 [Route("Set

我已经为电子商务网站开发了一个web API。在忘记密码的情况下,我必须对密码Rest实施双因素身份验证。我正在执行以下步骤: a) 单击忘记密码,系统将OTP作为SMS发送到手机 b) 我的webapi还将此OTP发送到移动客户端。 c) 用户在移动客户端输入OTP,然后确认。 d) 移动客户端验证输入的OTP和发送的OTP。 e) 确认后,系统需要向用户提供重置密码的选项。 f) 对于重置密码,我在AccountController中使用MVCWebAPI的内置方法

 [Route("SetPassword")]
        public async Task<IHttpActionResult> SetPassword(SetPasswordBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            IdentityResult result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            return Ok();
        }
[路由(“设置密码”)]
公共异步任务SetPassword(SetPasswordBindingModel模型)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
IdentityResult result=await UserManager.AddPasswordAsync(User.Identity.GetUserId(),model.NewPassword);
如果(!result.successed)
{
返回GetErrorResult(结果);
}
返回Ok();
}
i) 使用Postman测试此方法时,需要系统生成令牌。 j) 因为我们在获取令牌时没有密码(它在DB中加密),所以我们无法获取令牌

请帮助,如何在不提供邮递员客户端密码的情况下生成令牌