我正在使用 Asp.Net Identity 生成密码重置 token 。
string Token = userManager.GeneratePasswordResetToken(userId);
上面的代码给了我一个大长度的 token 。 是否可以生成长度较短的密码重置 token ?
最佳答案
您可以使用 TotpSecurityStampBasedTokenProvider
生成 6 位数字:
public class ResetPasswordTokenProvider : TotpSecurityStampBasedTokenProvider<OriIdentityUser>
{
public const string ProviderKey = "ResetPassword";
public override Task<bool> CanGenerateTwoFactorTokenAsync(UserManager<OriIdentityUser> manager, OriIdentityUser user)
{
return Task.FromResult(false);
}
}
并在启动类中添加:
services.AddIdentity<IdentityUser, IdentityRole>(options =>
{
options.Tokens.PasswordResetTokenProvider = ResetPasswordTokenProvider.ProviderKey;
})
.AddDefaultTokenProviders()
.AddTokenProvider<ResetPasswordTokenProvider>(ResetPasswordTokenProvider.ProviderKey);
关于c# - 如何减少 Asp.Net Identity 中的密码重置 token 长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108044/