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