如何获取新ASP中用户的密码。网络身份识别系统?或者如何在不知道当前密码(用户忘记密码)的情况下重置?
这是最初的回答。它确实工作,但有一个问题。如果addPassword
失败怎么办?用户没有密码。
原始答案:我们可以使用三行代码:
UserManager<IdentityUser> userManager =
new UserManager<IdentityUser>(new UserStore<IdentityUser>());
userManager.RemovePassword(userId);
userManager.AddPassword(userId, newPassword);
另见:http://msdn.microsoft.com/en-us/library/dn457095(v=vs.111)。aspx
最好使用EdwardBrey提出的答案,然后DanielWright用一个代码示例详细阐述了这个答案。
在当前版本中
假设您已经处理了重置忘记密码请求的验证,请使用以下代码作为示例代码步骤。
ApplicationDbContext =new ApplicationDbContext()
String userId = "<YourLogicAssignsRequestedUserId>";
String newPassword = "<PasswordAsTypedByUser>";
ApplicationUser cUser = UserManager.FindById(userId);
String hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
UserStore<ApplicationUser> store = new UserStore<ApplicationUser>();
store.SetPasswordHashAsync(cUser, hashedNewPassword);
在AspNet夜间构建
该框架被更新为与令牌一起处理像忘记密码这样的请求。一旦发布,就需要简单的代码指导。
更新:
这次更新只是为了提供更明确的步骤。
ApplicationDbContext context = new ApplicationDbContext();
UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(context);
UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
String userId = User.Identity.GetUserId();//"<YourLogicAssignsRequestedUserId>";
String newPassword = "test@123"; //"<PasswordAsTypedByUser>";
String hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
ApplicationUser cUser = await store.FindByIdAsync(userId);
await store.SetPasswordHashAsync(cUser, hashedNewPassword);
await store.UpdateAsync(cUser);
或者我如何在不知道当前密码的情况下重置(用户忘记密码)?
如果要使用UserManager更改密码,但不想提供用户的当前密码,可以生成密码重置令牌,然后立即使用它。
string resetToken = await UserManager.GeneratePasswordResetTokenAsync(model.Id);
IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(model.Id, resetToken, model.NewPassword);
我们刚刚启动了我们的ASP。NETMVC(使用Identity 2.0)web应用程序6天前已经有超过5000人注册了帐户,太棒了! 问题是3-5%点击确认电子邮件链接的用户(似乎也是重置密码)会出现错误屏幕,大概是因为他们有一个无效的令牌。 我在StackOverflow上读到,您需要对url进行编码,以避免特殊字符将其丢弃,然后在验证之前对其进行解码。不过,我这样做没有效果,一些用户仍然在他们
我写的是MVC5,使用的是Identity 2.0。 我在邮件中点击链接,我正在获得密码重置令牌并使用 结果总是false,并表示“无效令牌”。我该在哪里修?
我只是在我的项目中添加了MVC 5的“忘记密码”部分,在收到邮件后我无法更改密码。 错误:在应用程序中= 在Visual Studio中= 错误来源代码: 我在stackoverflow和其他方面尝试了很多东西,但都没有成功。 如果你知道我为什么会出现这个错误:) 我使用在创建ASP时提出的基本模板。NET web app。我可以上传你想要的所有代码文件,只要问你需要什么帮助我,我会在2分钟内上传
我正在ASP. NET中实现自己的重置密码。在重置密码中,首先我创建一个随机字符串并将其邮寄到用户电子邮件。对于电子邮件中的链接,如http://xyz.com/account/forgot?random=xxxx
一些相关问题:Webforms ASP。NET Identity system重置密码 我试图使用身份系统实现密码恢复,但遇到了错误(商店没有实现IUserEmailStore)。下面是我正在做的,我正在使用Visual Studio 2013 Web。使用Web表单(MVC学习进行中),用户注册他们的电子邮件,并存储在数据库的用户名字段中。我在IdentityModel中添加了UserManag
我正在用java编写一个必须在我的工作环境中运行的程序。这是我的代码片段: 在我的家庭网络上,这工作得非常好,但在商业网络上,我会遇到以下错误: onnection.getSocketException:软件导致连接中止:recv在java.net.SocketInputSonquerer.runRead0(本机方法)在onquerer.java:44SocketInputStream.read(