【发布时间】:2015-08-08 01:25:50
【问题描述】:
我需要创建方法,如果我不知道旧密码,可以更改数据库中的密码。例如,我有下一个代码:
public IHttpActionResult ChangePassword(ChangePasswordBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var result = UserManager.ChangePassword(User.Identity.GetUserId(), model.OldPassword,
model.NewPassword);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
return Ok();
}
在此代码中需要“model.OldPassword”但用户不知道旧密码。 我只有密码和当前用户 ID。
【问题讨论】:
-
我可以使用“PasswordHasher.HashPassword”作为我的示例吗?
-
所以您希望不知道密码的人能够将密码更改为他们可以使用的新密码,对吗?你看不出有什么问题吗?无论如何,这样做应该是一个管理员功能 - 知道管理员密码的人可以更改另一个用户的密码。
-
@MatthewWatson 我知道你要去哪里,但是如果 OP 会通过邮件验证或类似的方式来做呢?
-
@maam27 没关系,但它是一个服务器端功能(因此发送电子邮件并通过允许他们输入新密码来响应用户的回复不需要密码)。
-
当然可以。只有管理员可以更改密码。
标签: c# .net asp.net-web-api owin