0

好的,我已经播种了一些角色,这些角色可以在 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)如果我使用了错误的“表格”,我该如何设置它以使用正确的表格?

任何想法将不胜感激。

4

1 回答 1

3

You're aspnet_tables are old from either the default MembershipProvider or the SimpleMembershipProvider (either way it doesn't matter they should be removed).

MVC 5 uses Identity 2.0 by default. If you need to do anything with roles you need to use the RoleManager.

于 2014-06-09T19:19:22.020 回答