我一直在尝试继承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();
}
我是新手,我没有选择尝试。我做了几乎所有通常建议用于此类错误的内容,请帮助:)
答案 0 :(得分:0)
为了改变ASPNet Identity将用户信息存储在数据库中的方式,您似乎还没有完成所需的所有操作。
建议您从这里开始:Overview of Custom Storage Providers for ASP.NET Identity