如何使用ASP.net Identity 2.0设置双因素身份验证?

时间:2014-11-05 15:15:56

标签: asp.net asp.net-mvc asp.net-identity

所以我必须遗漏一些超级简单的东西,或者我还没有完全理解双因素身份验证应该如何适用于ASP.net Identity 2.0。

我的理解是双因素身份验证应该像GoDaddy或Google一样工作;当您尝试从没有有效的第二因子cookie的计算机登录时,会发送带有授权码的电子邮件或短信,并且您将看到第二个表单以输入您的身份验证代码以完成登录过程。

除了我必须为电子邮件服务实现SendAsync功能外,所有代码似乎都出现在新的MVC 5项目中:

public class EmailService : IIdentityMessageService
{
    public Task SendAsync(IdentityMessage message)
    {
        // Plug in your email service here to send an email.
        SmtpClient smtpClient = new SmtpClient("127.0.0.1", 25);
        MailMessage mail = new MailMessage("sender@domain.com", message.Destination, message.Subject, message.Body);
        smtpClient.Send(mail);
        return Task.FromResult(0);
    }
}

但是,当我登录时,不会发送任何电子邮件,也不会显示身份验证代码表单。

我进入了管理视图(Views => Manage => Index)并取消注释了TwoFactor部分。我重新登录,进入了管理界面,并为该帐户启用了双因素身份验证,但它并没有带来任何区别。

关于我缺少什么的想法?


修改

好的,所以看来问题的关键可能与注册确认有关。只有在确认电子邮件后,双因素身份验证才会起作用。否则代码不会发送。因此,您需要在注册中启用电子邮件确认,或在注册用户时设置EmailConfirmed = true

1 个答案:

答案 0 :(得分:1)

问题在于,必须将电子邮件标记为已确认才能使用双因素身份验证。

相关问题