ASP.NET MVC标识 - 如何在SMS中更改生成的标记的格式

时间:2016-01-07 08:02:34

标签: asp.net-mvc asp.net-mvc-4 asp.net-identity two-factor-authentication

在ASP.NET MVC / Identity中使用双因素身份验证,我成功设置了UserManager.SmsService。

默认情况下,ASP.NET Identity会生成一个6位长的验证令牌,该令牌由SMS发送。但是,我们的要求是使用4个字符长的字母数字标记。

使用以下命令生成代码:

var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), phoneNumber);

有没有办法定义生成代码的格式?

1 个答案:

答案 0 :(得分:0)

是的,你可以。查看 this SO 答案了解详情。

基本上,您必须创建一个继承 IUserTokenProvider<TUser, TKey> 的类并实现这两个方法:GenerateAsyncValidateAsync

您将在那里编写代码以生成和验证您的六个字符令牌。 ASP.NET Identity 中的任何地方都将使用相同的令牌,无需任何其他代码更改。