Istnieje bardzo mało dokumentacji na temat korzystania z nowego Asp.net Identity Security Framework.Tworzenie ról w Asp.net Tożsamość MVC 5
Połączyłem wszystko, co mogłem, aby spróbować utworzyć nową rolę i dodać do niej użytkownika. Próbowałem następujące: Add role in ASP.NET Identity
który wygląda jak może zdobyć info z tego bloga: building a simple to-do application with asp.net identity and associating users with to-does
Dodałem kod do Initializer bazy danych, który jest uruchamiany ilekroć modelowych zmian. To nie na funkcji RoleExists
z następującym błędem:
System.InvalidOperationException
occurred in mscorlib.dll The entity type IdentityRole is not part of the model for the current context.
protected override void Seed (MyContext context)
{
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
// Create Admin Role
string roleName = "Admins";
IdentityResult roleResult;
// Check to see if Role Exists, if not create it
if (!RoleManager.RoleExists(roleName))
{
roleResult = RoleManager.Create(new IdentityRole(roleName));
}
}
Każda pomoc jest mile widziana.
Dziękuję wszystkim za odpowiedzi. Teraz wszystko działa. Sprawdzanie kontekstu doprowadziło mnie we właściwym kierunku. Po utworzeniu tożsamości asp.net tworzy nowy kontekst (ApplicationDbContext), który rozszerza IdentityDbContext. W moim kodzie odwoływałam się do mojego pierwotnego kontekstu, który nie rozszerzył IdentityDbContext. Jeśli ktoś inny ma ten problem, sprawdź konteksty i dwukrotnie sprawdź katalog APP_DATA, aby upewnić się, że przypadkowo nie tworzysz dwóch baz danych. – colbyJax