在ASP.NET MVC / Identity中使用双因素身份验证,我成功设置了UserManager.SmsService。
默认情况下,ASP.NET Identity会生成一个6位长的验证令牌,该令牌由SMS发送。但是,我们的要求是使用4个字符长的字母数字标记。
使用以下命令生成代码:
var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), phoneNumber);
有没有办法定义生成代码的格式?
答案 0 :(得分:0)
是的,你可以。查看 this SO 答案了解详情。
基本上,您必须创建一个继承 IUserTokenProvider<TUser, TKey>
的类并实现这两个方法:GenerateAsync
和 ValidateAsync
。
您将在那里编写代码以生成和验证您的六个字符令牌。 ASP.NET Identity 中的任何地方都将使用相同的令牌,无需任何其他代码更改。