.NET MVC 5 Razor - 检查密码对登录用户 ID 是否有效
.NET MVC 5 Razor - check password is valid for logged in user Id
我需要在执行操作前检查用户密码。
例如,用户试图提取他们的信用。有 2 个输入:
- 要提取的金额
- 用户密码
由于用户已经登录,我可以获取UserId。但是,我需要根据当前登录的 UserId 验证他们的密码。
最简单的方法是强制用户重新登录(即要求他们输入用户名和密码),但这看起来很愚蠢且没有必要。
知道如何根据特定用户 ID 验证用户密码吗?
谢谢
我找到了解决方案。其实很简单。首先,是获取用户管理器。如果您不知道如何获取用户管理器,只需按照创建 MVC 项目时的默认示例即可。代码是:
HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>()
代码如下:
//var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
var user = userManager.Users.FirstOrDefault(rec => rec.Id == userId);
return userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, model.Password) != PasswordVerificationResult.Failed;
就是这样!
我希望这篇 post 对遇到类似问题的人有所帮助。
干杯!
我需要在执行操作前检查用户密码。
例如,用户试图提取他们的信用。有 2 个输入:
- 要提取的金额
- 用户密码
由于用户已经登录,我可以获取UserId。但是,我需要根据当前登录的 UserId 验证他们的密码。
最简单的方法是强制用户重新登录(即要求他们输入用户名和密码),但这看起来很愚蠢且没有必要。
知道如何根据特定用户 ID 验证用户密码吗?
谢谢
我找到了解决方案。其实很简单。首先,是获取用户管理器。如果您不知道如何获取用户管理器,只需按照创建 MVC 项目时的默认示例即可。代码是:
HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>()
代码如下:
//var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
var user = userManager.Users.FirstOrDefault(rec => rec.Id == userId);
return userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, model.Password) != PasswordVerificationResult.Failed;
就是这样! 我希望这篇 post 对遇到类似问题的人有所帮助。
干杯!