首页 > 解决方案 > 当用户名不是电子邮件地址时,两因素身份验证不向电子邮件发送代码

问题描述

我通过电子邮件使用 Owin 身份 2.0 使用两因素身份验证,我在发送电子邮件时遇到问题,因为我的 ApplicationUser 模型具有 UserName 和 Email 属性。如果 UserName 不是电子邮件地址,则代码不会发送到电子邮件地址,但如果 UserName 是电子邮件地址,则其工作正常。任何可能的解决方案将不胜感激。

if (!ModelState.IsValid)
        {
            return BadRequest();
        }
        try
        {
            if (await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider))
            {
                Logger.Info("Email sent to " + model.UserName);
                return new { Sent = true };
            }
            Logger.Info("Email not sent to " + model.UserName);
        }
        catch (Exception e)
        { Logger.Error(e.Message); }
        return new { Sent = false };

标签: c#owinasp.net-identity-2

解决方案


您说,您有一个 UserName 属性和一个 Email 属性。为什么不直接使用电子邮件地址而不是用户名作为收件人?


推荐阅读