Identity 2.0由管理员重置密码
如何将密码重置为其他用户的管理员?
我尝试过使用下面的代码
var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var result = await UserManager.ResetPasswordAsync(user.Id, code, vm.NewPassword);
当单步执行GeneratePasswordResetTokenAsync时,将调用控制器的dispose方法。
有人可以赐教吗?
您还可以扩展UserManager并公开不需要任何信息的显式AdminChangePassword API。 扩展UserManager的ApplicationUserManager中的这样的东西应该工作:
public IdentityResult ChangePasswordAdmin(string userId, string newPassword) { var user = FindById(userId); // validate password using PasswordValidator.Validate user.PasswordHash = PasswordHasher.HashPassword(newPassword); Update(user); }
我应该在发布问题之前搜索更多内容。
显然我需要将UserTokenProvider与DataProtectorTokenProvider连接起来。
但是,我不明白什么是DataProtector,如果有人可以在这里解释,会很高兴。
var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider != null) { manager.UserTokenProvider = new DataProtectorTokenProvider(dataProtectionProvider.Create("ASP.NET Identity")); }
答案在这里找到
- ASP.net Identity 2.0退出另一个用户
- 如何检查用户在asp.net身份中有很多角色
- 如何在用户点击注销按钮后让用户登录系统并注销?
- 在ASP.NET身份中获取使用Microsoft帐户进行身份validation的用户的电子邮件
- 我应该如何从MVC 6视图中访问我的ApplicationUser属性?
- 我如何创建UserManager的实例
- 使用具有entity framework6的存储库模式更新记录
- Store未实现IUserRoleStore ASP.NET Core 2.1 Identity
- 实体类型’Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin ‘需要定义一个键