加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – UserManager.AddPasswordAsync()返回“Name不能

发布时间:2020-12-16 06:33:17 所属栏目:asp.Net 来源:网络整理
导读:我使用MVC5和ASP.NET身份框架. 我扩展了VS2013搭建的帐户管理功能. 如果我的用户已经注册了外部登录提供程序并且想要添加本地密码,那么当我调用“AddPasswordAsync()”时,我得到并出错:“名称不能为null或为空” 我查看了我的数据库并确认用户名不是null.
我使用MVC5和ASP.NET身份框架.

我扩展了VS2013搭建的帐户管理功能.

如果我的用户已经注册了外部登录提供程序并且想要添加本地密码,那么当我调用“AddPasswordAsync()”时,我得到并出错:“名称不能为null或为空”

我查看了我的数据库并确认用户名不是null.

这个错误是什么意思?

我的ApplicationUser看起来像这样:

public class Person : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Sex Sex { get; set; }

    [Display(Name = "Birth date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}",ApplyFormatInEditMode = true)]
    public DateTime Birthdate { get; set; }
    public string EMail { get; set; }
    public int PostalCode { get; set; }

    public Collection<Race> Races { get; set; }
    public Collection<Participation> Participations { get; set; }

    public Person()
    {
        if (string.IsNullOrEmpty(UserName))
        {
            UserName = EMail;
        }
        Participations = new Collection<Participation>();
        Races = new Collection<Race>();
        Birthdate = DateTime.Now;
    }
}

最好的祝福
弗雷德里克

解决方法

经过多次尝试,我终于解决了它.错误消息是错误的,它来自数据库,意味着username字段为null但数据库需要它.

确保向db发送类似的用户名,例如:

var user = new ApplicationUser { UserName = model.Email,Email = model.Email,Hometown = model.Hometown };

并通过运行update-database确保数据库在此之前是最新的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读