Warum ist UserManager.Finden() null zurückgeben, wenn mein Benutzername ist E-Mail?

Ich versuche zu implementieren E-Mail-Adresse Benutzernamen in der AspNet.Identität für MVC5, aber ich habe Probleme mit dem UserManager finden meine user.

public UserManager<ApplicationUser> UserManager { get; private set; }

public AccountController(UserManager<ApplicationUser> userManager)
{
    UserManager = userManager;
    UserManager.UserValidator = new UserValidator<ApplicationUser>(UserManager)
    {
        AllowOnlyAlphanumericUserNames = false
    };
}

In meinem login-post-Methode:

var user = await UserManager.FindAsync(model.UserName, model.Password);

user gleich null ist.

Bin ich mit der falschen Methode zu finden, die meine user mit Benutzername und Passwort?

Selbst wenn ich

var db = new ApplicationDBContext();
var user = db.Users.Find(model.UserName);

oder

var db = new ApplicationDBContext();
var user = db.Users.FirstOrDefault(u => u.UserName == model.UserName);

Bekomme ich eine null -

UPDATE

Wie es aussieht bin ich immer null, weil der user den ich versuche zu Samen nicht ausgesät. Wer weiß, warum?

Dies ist mein Saatgut für die Benutzer in der Konfiguration.cs (Migrationen):

var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var users = new List<ApplicationUser>()
{
    new ApplicationUser { UserName = "[email protected]", IsActive = true },
    new ApplicationUser { UserName = "[email protected]", IsActive = true },
    new ApplicationUser { UserName = "[email protected]", IsActive = false }
};
users.ForEach(i => manager.Create(i, "password"));

Wenn ich die Samen, die Benutzer, die keine E-Mail-Benutzernamen, das Saatgut geht durch mit kein problem:

new ApplicationUser { UserName = "batman", IsActive = true },
new ApplicationUser { UserName = "superman", IsActive = true },
new ApplicationUser { UserName = "wonderwoman", IsActive = false }
InformationsquelleAutor CIA | 2014-01-11
Schreibe einen Kommentar