gpt4 book ai didi

asp.net-mvc-5 - ASP.Net Identity 2 用短信重置密码

转载 作者:行者123 更新时间:2023-12-03 17:59:44 25 4
gpt4 key购买 nike

我希望在重置密码时向用户发送短信。我已经有了发送短信的工具,我只需要一个关于如何使用 Identity 2.0 设置它的指南。我似乎无法在网上找到任何有用的信息,引用代码本身也没有正确注释。

我想生成一个安全代码,将其发送给用户,然后他必须将其输入表单,然后才能重置他/她的密码。任何人都可以指导我查看解释此过程的指南/教程吗?

最佳答案

在挖掘身份源代码后,我找到了一个替代 token 提供者,它可以生成类似于电话号码确认(六位数字)的 token 。

我必须在我的 UserManager 中实现两个方法来生成代码然后验证它。

我在 UserManager 中声明了 token 提供者

private TotpSecurityStampBasedTokenProvider<User, string> smsResetTokenProvider = new TotpSecurityStampBasedTokenProvider<User, string>();

这是生成代码的第一种方法:
public async Task<string> GenerateSMSPasswordResetToken(string userId)
{
var user = await base.FindByIdAsync(userId);
var token = await smsResetTokenProvider.GenerateAsync("Reset Password", this, user);
return token;
}

这是验证代码的第二种方法:
public async Task<IdentityResult> SMSPasswordResetAsync(string userId, string token, string newPassword)
{
var user = await base.FindByIdAsync(userId);
var valid = await smsResetTokenProvider.ValidateAsync("Reset Password", token, this, user);
if (valid)
{
var passwordStore = Store as IUserPasswordStore<User, string>;

var result = await UpdatePassword(passwordStore, user, newPassword);
if (!result.Succeeded)
{
return result;
}
return await UpdateAsync(user);
}
else
{
return IdentityResult.Failed("InvalidToken");
}
}

您可能需要根据您的用户经理调整代码

关于asp.net-mvc-5 - ASP.Net Identity 2 用短信重置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990168/

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