J'ai rencontré un problème pour l'amorçage de la base de données avec Identity v2. J'ai séparé le IdentityModel du projet MVC5 à mon Data Access Layer où j'ai également installé les Migrations EF. Donc, je commentais le code qui utilisent l'intérieur « IdentityConfig.cs » pour créer l'utilisateur initial et de mettre le code dans ma base de données de semences qui ressemble à ceciBase de données de départ pour Identity 2
protected override void Seed(Repository.DataContext.IdentityDb context)
{
// var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
// var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
var owinContext = new OwinContext();
var userManager = owinContext.GetUserManager<ApplicationUserManager>();
var roleManager = owinContext.Get<ApplicationRoleManager>();
const string name = "[email protected]";
const string password = "[email protected]";
const string roleName = "Admin";
// //Create Role Admin if it does not exist
var role = roleManager.FindByName(roleName);
if (role == null)
{
role = new IdentityRole(roleName);
var roleresult = roleManager.Create(role);
}
var user = userManager.FindByName(name);
if (user == null)
{
user = new ApplicationUser { UserName = name, Email = name };
var result = userManager.Create(user, password);
result = userManager.SetLockoutEnabled(user.Id, false);
}
// // Add user admin to Role Admin if not already added
var rolesForUser = userManager.GetRoles(user.Id);
if (!rolesForUser.Contains(role.Name))
{
var result = userManager.AddToRole(user.Id, role.Name);
}
}
Maintenant, quand je suis en cours d'exécution mise à jour base de données de commande, je suis un erreur
Value cannot be null.
Parameter name: manager
Il ressemble, j'obtiens nulle dans ces deux lignes de code
var userManager = owinContext.GetUserManager<ApplicationUserManager>();
var roleManager = owinContext.Get<ApplicationRoleManager>();
Toute suggestion s'il vous plaît?
Regardez ligne 51 ici: https://raw.githubusercontent.com/OdeToCode/MVC5_Samples/master/identity/BasicIdentityWithDiagrams /Migrations/Configuration.cs Je ne pense pas que vous aurez du succès en utilisant Owin dans la méthode Seed à moins que vous ne lanciez Seed depuis l'application. Owin ne sera pas disponible ou configuré si vous exécutez Seed à partir de la console du gestionnaire de packages. – OdeToCode