我有角色种子 - 但Roles.GetAllRoles不起作用?

时间:2014-06-09 18:33:07

标签: asp.net-mvc entity-framework azure asp.net-identity-2

好的我已经在表AspNetRoles中的SQL数据库中找到了一些可以找到的角色 并且用户可以找到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)如果我使用了错误的“表”,我该如何设置它以便使用正确的表?

非常感谢任何想法。

1 个答案:

答案 0 :(得分:3)

您的aspnet_tables在默认的MembershipProvider或SimpleMembershipProvider中都是旧的(无论哪种方式都应该删除它们都无关紧要。)

MVC 5默认使用Identity 2.0。如果您需要对角色执行任何操作,则需要使用RoleManager