如何创建可以登录的ASP.NET Identity用户?

时间:2016-10-03 12:49:13

标签: asp.net asp.net-identity

我有一个ASP.NET Web应用程序,它有内部个人用户帐户。我想从外部程序创建这些用户帐户。所以我有一个引用Microsoft.AspNet.Identity的程序。在其中我创建了用户:

var userStore = new UserStore<IdentityUser>();
var um = new UserManager<IdentityUser>(userStore);
//...
var newUser = new IdentityUser(userName);
newUser.Email = userName;
var result = um.Create(newUser, "P@ssword1");

但是,当我运行第一个应用程序并尝试登录时,SignInManager.PasswordSignInAsync始终返回SignInStatus.Failure。 (我很确定用户名和密码是正确的;我正在从数据库中复制用户名并从代码中复制密码。)不应该有用吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

事实证明,罪魁祸首是IdentityUser。我不知道为什么(我猜测安全标记与它有关),但你需要制作ApplicationUser。所以我添加了对Web应用程序的引用,因此我可以创建ApplicationUser而不是IdentityUser

var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
var um = new UserManager<ApplicationUser>(userStore);
//...
var newUser = new ApplicationUser();
newUser.Email = user.UserName;
newUser.UserName = user.UserName;
var result = um.Create(newUser, "P@ssword1");