У меня есть роли Seeded, но Roles.GetAllRoles не работает?

Хорошо, я посеял некоторые роли, которые можно найти в базе данных SQL в таблице AspNetRoles, а пользователи могут быть найдены AspNetUsers.

Я также нашел кучу таблиц aspnet_ (думаю, это старые таблицы WebForm). В представлении я вызываю @Roles.GetAllRoles(), который не возвращает результатов. в таблице aspnet_Roles нет записей. Так что, возможно, там есть проверка. Но это кажется маловероятным, поскольку посевные роли создаются таким образом:

 var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
        if (!roleManager.RoleExists("Member"))
              roleManager.Create(new IdentityRole("Member"));

Что, по моему небольшому знанию MVC5, предполагает, что Roles.GetAllRoles() вернет правильный результат.

Я использую эту @model EUWebRole.Models.IdentityManager, также попробовал ApplicationUser без каких-либо изменений в результатах.

Итак к вопросам:

1) Как получить список ролей? 2) Если я использую неправильные «таблицы», как мне настроить его так, чтобы он использовал правильные таблицы?

Любые идеи очень приветствуются.


person Dave Gordon    schedule 09.06.2014    source источник


Ответы (1)


Вы aspnet_tables устарели либо от MembershipProvider по умолчанию, либо от SimpleMembershipProvider (в любом случае это не имеет значения, их следует удалить).

MVC 5 по умолчанию использует Identity 2.0. Если вам нужно что-то сделать с ролями, используйте RoleManager.

person Erik Philips    schedule 09.06.2014
comment
Я так и думал, но Roles.GetAllRoles() по-прежнему ничего не возвращает. - person Dave Gordon; 10.06.2014
comment
Какую базу данных вы используете? - person Erik Philips; 10.06.2014
comment
Извините, Роли устарели, проверьте Получите все имена ролей в ASP Система идентификации .NET MVC5 - person Erik Philips; 10.06.2014