【问题标题】:I have roles Seeded - but Roles.GetAllRoles doesn't work?我有角色种子 - 但 Roles.GetAllRoles 不起作用?
【发布时间】:2014-06-10 03:19:22
【问题描述】:

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

任何想法都将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    您的 aspnet_tables 来自默认 MembershipProvider 或 SimpleMembershipProvider 是旧的(无论哪种方式,它们都应该被删除)。

    MVC 5 默认使用 Identity 2.0。如果你需要对角色做任何事情,你需要使用RoleManager

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2015-07-29
    • 2020-12-24
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多