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



所以我一定错过了一些超级简单的东西,或者我不完全理解双因素身份验证应该如何适用于ASP.net Identity 2.0。

我的理解是,双因素身份验证应该像GoDaddy或谷歌一样工作;当您尝试在没有有效的第二因素cookie的情况下从计算机登录时,会发送一封带有身份验证码的电子邮件或短信,并向您提供第二个表单,以输入您的身份验证码,从而完成登录过程。

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

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

问题是必须将电子邮件标记为已确认,才能进行双因素身份验证。

相关内容

  • 没有找到相关文章