c# – WebMatrix.WebData.WebSecurity – 如何只通过PasswordRes
发布时间:2020-12-15 08:39:08 所属栏目:百科 来源:网络整理
导读:我只是想请求帮助以使我的方案工作?我想使用PasswordResetToken获取UserName. 这是我的情景. 我的网站上有一个忘记密码功能,可以向用户发送密码重置电子邮件更改密码. 我只想发送密码重置字符串. 当用户单击链接时.我将只查询请求[“token”]以获取用户名,
我只是想请求帮助以使我的方案工作?我想使用PasswordResetToken获取UserName.
这是我的情景. >我的网站上有一个忘记密码功能,可以向用户发送密码重置电子邮件更改密码. 这是我的代码如下: public ActionResult ChangePassword() { ChangePasswordModel model = new ChangePasswordModel(); string token=string.Empty; try { token = Request["token"].ToString(); int userId = WebSecurity.GetUserIdFromPasswordResetToken(token); if (userId > 0) { //Get the user object by (userid) //??????????????????? //??????????????????? } else { throw new Exception("The change password token has expired. Please go to login page and click forgot password again."); } } catch { model.HasError = true; ModelState.AddModelError("","The change password token has expired. Please go to login page and click forgot password again."); } return View(model); } 先感谢您. 解决方法
看看本文末尾的评论:
WebSecurity.GeneratePasswordResetToken Method.
为方便起见,我会复制相关部分:
突出显示是我的.基本上你不需要用户名.该框架为您完成了所有繁重的工作. 解决你的评论,我不建议自动登录用户.这是一个很好的做法,他们手动记录检查这个密码更改的东西实际上是否有效,而不是发现它不仅仅是下一次. 无论如何,你可以这样做: SimpleMembershipProvider provider = (SimpleMembershipProvider)Membership.Provider; string username = provider.GetUserNameFromId(userId); 参考:GetUserNameFromId. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |