gpt4 book ai didi

C# ASP.NET 标识

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:46 28 4
gpt4 key购买 nike

我这里有一个场景,当用户想要重置密码时,系统必须通过电子邮件向用户发送一个随机生成的临时密码。我尝试将临时密码存储到数据库中的一个新列中,但我不确定这种方法是否有效。有些人建议使用 token,如下所示:

string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

但是,我对ASP.NET 还是个新手,对token 也不熟悉。如何将临时生成的 token 与数据库中的 token 进行比较?

我发现实现此目的的另一种方法是使用 Membership.GeneratePassword 函数生成随机字符串:

model.temppwd = Membership.GeneratePassword(10, 1);

任何人都可以通过一些示例为我提供实现此功能的理想方法吗?谢谢!

最佳答案

在我们的项目中我们使用了

Guid.NewGuid();并将包含恢复密码操作 (MVC) 链接的电子邮件作为查询字符串发送:https://yoursite.com/account/reset/?code=your_guid_code

例子:

ResetPassword resetPassword = new resetPassword();
resetPassword.Code = Guid.NewGuid();
string strLink = string.Format("{0}", actionUrl + "?code="+ resetPassword.Code);`

现在您可以使用 strLink 发送您的电子邮件。您需要将 Guid 与 userId 一起存储在数据库表中,以便您可以实现重置过程。当用户单击您电子邮件中的链接时,他将进入一个要求输入新密码的表单/ View 。此外,您还需要向该表添加一个额外的列,以便为该代码提供到期限制。如果用户单击电子邮件中的链接并且代码已过期,您将必须通知用户并发送另一封包含另一个代码的电子邮件。

关于C# ASP.NET 标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36203406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com