【问题标题】:How do I use the roles created in SQL Server in ASP.NET MVC after importing the database?导入数据库后,如何在 ASP.NET MVC 中使用 SQL Server 中创建的角色?
【发布时间】:2017-10-17 01:09:31
【问题描述】:

我在 Visual Studio 2013 (Express for Web) 中创建了一个新的 ASP.NET MVC 5 项目,并导入了一个数据库,但是当我尝试使用

验证用户角色时
if(User.IsInRole("Admin"))

它仍然将用户识别为普通用户,而不是管理员。我想知道导入数据库后如何在控制器中获取用户角色?

而且,我如何确保将角色导入到我的 ASP.NET MVC 应用程序中?

【问题讨论】:

标签: sql-server asp.net-mvc asp.net-mvc-4


【解决方案1】:

确保您的数据库中有必要的数据。您必须确保角色在“AspNetRoles”表中,并且用户在“AspNetUserRoles”表中链接。为确保您有数据,您可以使用以下种子:

public static class RoleSeeder
{
    public static void Seed()
    {
        CreateRole("Admin", "Administratie", "Administratie");
        ...
    }

    private static void CreateRole(string name, string description, string group)
    {
        using (var db = new DbContext())
        {
            if (!db.Roles.Any(r => r.Name == name))
            {
                var role = new Role { Name = name, Description = description, Group = group };

                var store = new RoleStore<Role>(db);
                var manager = new RoleManager<Role>(store);

                manager.Create(role);
            }
            else
            {
                var store = new RoleStore<Role>(db);
                var manager = new RoleManager<Role>(store);

                var dbRole = manager.FindByName(name);
                dbRole.Description = description;
                dbRole.Group = group;

                manager.Update(dbRole);
            }
        }
    }
}

没有理由编写自己的角色管理器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多