Mam problem z umieszczeniem mojej bazy danych z użytkownikami i rolami.Sprawdzanie, czy użytkownik odgrywa rolę w asp.net mvc Identity
Użytkownik i rola są tworzone (widzę je w bazie danych po zgłoszeniu błędu).
Jednak gdy próbuję sprawdzić, czy użytkownik jest w roli, otrzymuję wyjątek.
Mój kod to:
public class tbInitializer<T> : DropCreateDatabaseAlways<tbContext>
{
protected override void Seed(tbContext context)
{
ApplicationDbContext userscontext = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(userscontext);
var userManager = new UserManager<ApplicationUser>(userStore);
var roleStore = new RoleStore<IdentityRole>(userscontext);
var roleManager = new RoleManager<IdentityRole>(roleStore);
if(!userscontext.Users.Any(x=> x.UserName=="marktest"))
{
var user = new ApplicationUser { UserName = "marktest", Email = "[email protected]" };
userManager.Create(user, "Pa$$W0rD!");
}
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new IdentityRole("Admin"));
}
if(!userManager.IsInRole("marktest","Admin"))
{
userManager.AddToRole("marktest","Admin");
}
Jednak na linii:
if(!userManager.IsInRole("marktest","Admin"))
jest wyjątek z błędem: UserId not found.
użytkownikiem i rolę, są zarówno w bazie danych, gdy sprawdzam po wyrzuceniu wyjątku:
Czy ktoś może zobaczyć, co robię źle?
Dzięki za wszelką pomoc,
Mark
Czy próbowałeś 'SaveChanges()' przed 'if (! UserManager.IsInRole (" marktest "," Admin "))'? – Bruniasty
Hi - tak, dodałem 'context.SaveChanges();' - tuż przed tą linią, ale nadal generuje wyjątek z tym samym błędem. Dzięki, Mark – Mark
Czy użytkownik "marktest" jest zapisany w bazie danych? – Bruniasty