gpt4 book ai didi

c# - ASP.Net MVC 身份忘记密码

转载 作者:行者123 更新时间:2023-11-30 12:27:19 24 4
gpt4 key购买 nike

我已经设置了一个快速页面来接受一个电子邮件地址,该地址将向其发送一封电子邮件,该电子邮件稍后将包含一个链接以重置密码或一个新的临时密码。

我的项目是一个使用 Identity 的新 ASP .Net MVC 项目。我认为重置它的最好方法是发送一个指向电子邮件的链接,点击该链接后用户可以输入一个新链接,但我不确定在链接指向的页面上放什么,以允许这个功能并确保网站安全。

在这种情况下,发送一个新的临时文件是否最简单?

最佳答案

这篇评论太长了,所以希望我在没有实际代码示例的情况下不会被否决 :O

我见过的常见解决方案:

当用户请求重设密码时,将 guid/随机哈希和到期日期时间记录到您的用户存储(最有可能是数据库)中的用户信息中。

带有临时页面链接的电子邮件会发送到用户存档的电子邮件地址(此解决方案确实需要有效的电子邮件地址)。

点击临时页面后,可以将链接设置为立即过期(将过期日期设置为 datetime.now,或从用户信息中删除 guid/hash 等)。

此临时页面 URL 可能在查询字符串中包含记录用户的 guid/哈希,因此如果没有电子邮件中的链接,应该很难找到它。为了增加安全性,可以要求用户输入请求重置密码的用户名/电子邮件(因为页面上可能不会提及用户名/密码。完成(或不完成)此验证后,为用户提供重置密码的适当字段。

关于“忘记密码链接”的另一个最后说明不提供任何关于用户名是否“不存在”的信息,因为这可能会在您的网站上找到有效的用户名。

编辑:

这里有一个之前的堆栈溢出问题,可能比我解释得更好(不要看“已接受”的答案,看最赞的答案。:)

Generate temporary URL to reset password

关于c# - ASP.Net MVC 身份忘记密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701505/

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