因为我对被接受的答案不太清楚,所以我想分享一下这个。
如果你查看IdentityUser类的源代码,你会发现以下内容。
public class IdentityUser : IdentityUser<string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>, IUser, IUser<string>
{
public IdentityUser()
{
this.Id = Guid.NewGuid().ToString();
}
... code omitted
}
正如您所看到的,当创建一个新的IdentityUser
实例时,构造函数会生成一个新的GUID并填充Id字段。
这意味着如果您创建了一个派生类的新实例,例如ApplicationUser
,那么一个新的Id仍将自动生成。
因此,在您检查用户已被成功添加之后,您可以安全地在ApplicationUser
类中使用该Id进行数据关联。
例如。
var user = new ApplicationUser
{
UserName = "franko",
FirstName = "Frank",
LastName = "Ouimette",
Email = "franko@emailservice.com"
};
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded){
result = UserManager.AddToRole(user.Id, "User");
var id = user.Id;
}