因此,我肯定缺少了一些非常简单的东西,否则我不完全理解双因素身份验证应该如何适用于ASP.net标识2.0。
我的理解是,双因素身份验证应该像GoDaddy或Google那样工作;当您试图在没有有效的第二因素cookie的计算机上登录时,电子邮件或短信会用auth代码发送,然后您将收到第二份表单,以输入您的auth代码,以便完成正在处理的签名。
所有的代码似乎都出现在一个新的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);
}
}但是,当我登录时,不会发送电子邮件,也不会显示auth代码表单。
我进入了Manage (视图、=>管理、=>索引)并取消了TwoFactor部分的注释。我重新登录,进入管理屏幕,并为该帐户启用了双因素身份验证,但这并没有什么不同。
我错过了什么?
编辑
好的,看来我问题的症结可能与注册确认有关。这两个因素的认证似乎只有在电子邮件被确认时才有效。否则,代码不会发送。因此,您需要在注册中启用电子邮件确认,或者在注册用户时设置EmailConfirmed = true。
发布于 2014-12-09 15:20:50
问题是,这封电子邮件必须被标记为确认才能使双因素认证生效。
https://stackoverflow.com/questions/26760597
复制相似问题