如何使用ASP.Net标识重置web API中的密码
我已经为电子商务网站开发了一个web API。在忘记密码的情况下,我必须对密码Rest实施双因素身份验证。我正在执行以下步骤: a) 单击忘记密码,系统将OTP作为SMS发送到手机 b) 我的webapi还将此OTP发送到移动客户端。 c) 用户在移动客户端输入OTP,然后确认。 d) 移动客户端验证输入的OTP和发送的OTP。 e) 确认后,系统需要向用户提供重置密码的选项。 f) 对于重置密码,我在AccountController中使用MVCWebAPI的内置方法如何使用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
[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中加密),所以我们无法获取令牌
请帮助,如何在不提供邮递员客户端密码的情况下生成令牌