Comment créer ApplicationUser par UserManager dans la méthode Seed de l'application Web ASP .NET MVC 5
Je peux créer des utilisateurs dans l'ancienne:
var users = new List<ApplicationUser> {
new ApplicationUser{PasswordHash = hasher.HashPassword("TestPass44!"), Email = "[email protected]", UserName = "[email protected]", SecurityStamp = Guid.NewGuid().ToString()},
new ApplicationUser{PasswordHash = hasher.HashPassword("TestPass44!"), Email = "[email protected]", UserName = "[email protected]", SecurityStamp = Guid.NewGuid().ToString()}
};
users.ForEach(user => context.Users.AddOrUpdate(user));
context.SaveChanges();
mais je veux le faire à la ASP.NET MVC 5.1 chemin à l'aide UserManager
. J'ai regardé comment le Register
méthode POST regarde dans AccountController
:
public async Task<ActionResult> Register(RegisterViewModel model) {
if (ModelState.IsValid) {
var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded) { [...]
j'ai donc essayé de faire la même chose:
var user = new ApplicationUser() { Email = "[email protected]",
UserName = "[email protected]"};
IdentityResult result = UserManager.CreateAsync(user, "abcwq12312!P");
mais j'obtiens ceci:
aussi Si je viens de type UserManager.
VS2013 ne montre pas toutes les méthodes sur la liste.
Alors, comment ajouter un utilisateur dans cette voie?
EDIT1:
source d'informationauteur Yoda | 2014-08-20
Vous devez vous connecter pour publier un commentaire.
Ok, donc à créer de l'utilisateur
CreateAsync
est inutile, le problème était ailleurs. On devrait utiliserApplicationUserManager
pasUserManager
(celui-ci n'ajoute rien à la base de données).Je ne comprends pas l'erreur de vous montrer, sauf si vous fournissez une coutume
TUser
ouTKey
auquel cas serait :et en passant de l'utilisateur de votre
CustomUser
au lieu deApplicationUser
et peut-être de type int si votreCustomKey
est un int au lieu de string. (CreateAsync peut inférer des types, j'ai posté là pour leur montrer explicitement)L'autre problème que je vois est que vous n'êtes pas en attente de la tâche, vous devez également ajouter l'attendent comme :
Espère que cette aide.
EDIT:
Pour être complet, je vais poster une réponse complète à partir de cette question, mais il est votre réponse. : Impossible d'accéder à CreateAsync dans le Gestionnaire des Utilisateurs
Je vais aussi le drapeau de double possible.