Wie erstellen ApplicationUser von UserManager in der Seed-Methode, die von ASP .NET MVC 5-Webanwendung
Ich kann Benutzer anlegen in der alten Weise:
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();
aber ich will es auf die ASP.NET MVC 5.1 mit UserManager
. Habe ich geguckt, wie die Register
POST-Methode sieht in 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) { [...]
also versuchte ich das gleiche tun:
var user = new ApplicationUser() { Email = "[email protected]",
UserName = "[email protected]"};
IdentityResult result = UserManager.CreateAsync(user, "abcwq12312!P");
aber ich bekomme diese:
auch Wenn ich nur Typ UserManager.
VS2013 nicht zeigt Methoden auf der Liste.
So, wie Sie Benutzer hinzufügen, die in dieser Weise?
EDIT1:
Gibt es einen speziellen Grund, dass Sie möchten, um Benutzer mit der UserManager Klasse? Normalerweise würde ich geben, die Beratung zu Gebrauch und den Kontext, in dem Samen - Methode (und nicht die Identität Zeug - es gibt keinen Vorteil, der die asynchronen Methoden während der seeding der Datenbank) und die Identität framework in den rest der Anwendung (ohne die Nutzung von Kontext).
Ich möchte lernen, wie es zu tun.
mögliche Duplikate von keinen Zugang CreateAsync im Benutzer-Manager
Ich möchte lernen, wie es zu tun.
mögliche Duplikate von keinen Zugang CreateAsync im Benutzer-Manager
InformationsquelleAutor Yoda | 2014-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok so erstellen Sie Benutzer -
CreateAsync
ist unnötig, das problem lag woanders. Sollte manApplicationUserManager
nichtUserManager
(dieses hat nichts hinzufügen, um die Datenbank).Ich benutzte die UserManager in der seed-Methode ohne Probleme. Nur stellen Sie sicher Sie überprüfen Sie das Ergebnis.Gelungen = true. Wenn nichts in der Datenbank gespeichert werden, haben Sie vielleicht eine schwache Passwort-Fehler.
Du bist ein Lebensretter!
InformationsquelleAutor Yoda
Ich verstehe nicht den Fehler, den Sie zeigen, es sei denn, Sie eine benutzerdefinierte
TUser
oderTKey
in dem Fall wäre das wie :und übergabe-Benutzer als Ihre
CustomUser
stattApplicationUser
und vielleicht int wenn IhrCustomKey
ist ein int statt string. (CreateAsync ableiten kann, Arten, die ich geschrieben um Ihnen zu zeigen, explizit)Das andere problem das ich sehe, ist Sie nicht der Erwartung der Aufgabe, Sie müssen auch hinzufügen, erwarten wie :
Hoffe, das hilft.
EDIT:
Vollständigkeit halber werde ich die volle Beantwortung von dieser Frage, aber es ist Ihre Antwort. : Nicht auf CreateAsync im Benutzer-Manager
Werde ich auch die fahne für mögliche Duplikate.
Nach der Forschung besser, ich denke, hier ist Ihre Antwort : stackoverflow.com/questions/24081586/...
Ich geschrieben die Antwort. Danke für Eure Hilfe.
InformationsquelleAutor Bart Calixto