Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 导入数据库后,如何在ASP.NET MVC中使用SQL Server中创建的角色?_Sql Server_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Sql server 导入数据库后,如何在ASP.NET MVC中使用SQL Server中创建的角色?

Sql server 导入数据库后,如何在ASP.NET MVC中使用SQL Server中创建的角色?,sql-server,asp.net-mvc,asp.net-mvc-4,Sql Server,Asp.net Mvc,Asp.net Mvc 4,我在Visual Studio 2013(Express for Web)中创建了一个新的ASP.NET MVC 5项目,并导入了一个数据库,但当我尝试使用 if(User.IsInRole("Admin")) 它仍然将用户标识为普通用户,而不是管理员。我想知道如何在导入数据库后获得控制器中的用户角色 还有,如何确保将角色导入到我的ASP.NET MVC应用程序中?确保数据库中有必要的数据。您必须确保角色位于“AspNetRoles”表中,并且用户链接在“AspNetUserRoles”表中。

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

if(User.IsInRole("Admin"))
它仍然将用户标识为普通用户,而不是管理员。我想知道如何在导入数据库后获得控制器中的用户角色


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

确保数据库中有必要的数据。您必须确保角色位于“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);
            }
        }
    }
}
公共静态类角色编辑器
{
公共静态无效种子()
{
CreateRole(“管理员”、“管理员”、“管理员”);
...
}
私有静态void CreateRole(字符串名称、字符串描述、字符串组)
{
使用(var db=new DbContext())
{
if(!db.Roles.Any(r=>r.Name==Name))
{
var role=新角色{Name=Name,Description=Description,Group=Group};
var存储=新角色存储(db);
var经理=新角色经理(门店);
创建(角色);
}
其他的
{
var存储=新角色存储(db);
var经理=新角色经理(门店);
var dbRole=manager.FindByName(名称);
dbRole.Description=描述;
dbRole.Group=Group;
manager.Update(dbRole);
}
}
}
}

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

确保数据库中有必要的数据。您必须确保角色位于“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);
            }
        }
    }
}
公共静态类角色编辑器
{
公共静态无效种子()
{
CreateRole(“管理员”、“管理员”、“管理员”);
...
}
私有静态void CreateRole(字符串名称、字符串描述、字符串组)
{
使用(var db=new DbContext())
{
if(!db.Roles.Any(r=>r.Name==Name))
{
var role=新角色{Name=Name,Description=Description,Group=Group};
var存储=新角色存储(db);
var经理=新角色经理(门店);
创建(角色);
}
其他的
{
var存储=新角色存储(db);
var经理=新角色经理(门店);
var dbRole=manager.FindByName(名称);
dbRole.Description=描述;
dbRole.Group=Group;
manager.Update(dbRole);
}
}
}
}

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

您需要设置角色管理器,请参阅此答案:您需要设置角色管理器,请参阅此答案: