IdentityUser:“名称不能为空或空”

时间:2014-12-16 22:04:08

标签: asp.net identity

我一直在尝试继承IdentityUser来创建我自己的类,它使用Identity并仍然写入我的数据库,当我尝试调用我的注册帖法时,我不断收到此错误:

{
    "$id": "1",
    "Message": "The request is invalid.",
    "ModelState": {
        "$id": "2",
        "": [
            "Name cannot be null or empty."
        ]
    }
}

我尝试了很多东西,但没有任何效果。例如,当我尝试设置IdentityUser的UserName字段时,它说这是不可能的,因为它在上下文中不存在。 重要的是要提到我正在使用ADO.NET数据库第一个模型进行帐户:)

这是班级:

public partial class Account :IdentityUser
    {
        public Account()
        {
            this.Families = new HashSet<Family>();
        }

        public long idAccount { get; set; }
        public string email { get; set; }
        public string password { get; set; }
        public string firstName { get; set; }
        public string lastName { get; set; }

        public virtual ICollection<Family> Families { get; set; }
    }

这是我的身份验证存储库类:

public class AuthRepository :IDisposable
    {
        private DAKPAKEntities _ctx;

        private UserManager<Account> _userManager;

        public AuthRepository()
        {
            _ctx = new DAKPAKEntities();
            _userManager = new UserManager<Account>(new UserStore<Account>(_ctx));
        }

        public async Task<IdentityResult> RegisterUser(Account userModel)
        {
            Account user = new Account
            {

                firstName = userModel.firstName,
                lastName = userModel.lastName,
                email=userModel.email
            };


            var result = await _userManager.CreateAsync(user,userModel.password);

            return result;
        }

}

这是调用存储库的控制器:

// POST api/Account/Register


     [AllowAnonymous]
        [Route("Register")]
        public async Task<IHttpActionResult> Register(Account userModel)
        {
            IdentityResult result = await _repo.RegisterUser(userModel);

            IHttpActionResult errorResult = GetErrorResult(result);

            if (errorResult != null)
            {
                return errorResult;
            }



 return Ok();
    }

我是新手,我没有选择尝试。我做了几乎所有通常建议用于此类错误的内容,请帮助:)

1 个答案:

答案 0 :(得分:0)

为了改变ASPNet Identity将用户信息存储在数据库中的方式,您似乎还没有完成所需的所有操作。

建议您从这里开始:Overview of Custom Storage Providers for ASP.NET Identity