Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
Asp.net mvc MVC 5身份更新用户角色_Asp.net Mvc - Fatal编程技术网

Asp.net mvc MVC 5身份更新用户角色

Asp.net mvc MVC 5身份更新用户角色,asp.net-mvc,Asp.net Mvc,我写了这段代码: using(var _db = new ApplicationDbContext()) { string roleName = "Admin"; var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext())); if(!roleManager.RoleExists(roleName))

我写了这段代码:

using(var _db = new ApplicationDbContext())
{
    string roleName = "Admin";
    var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));

    if(!roleManager.RoleExists(roleName))
    {
        var newRoleresult = roleManager.Create(new IdentityRole()
        {
            Name = roleName,
        });                  

        var userRole = new IdentityUserRole
        {                                        
            UserId = System.Web.HttpContext.Current.User.Identity.GetUserId(),
                        RoleId = roleManager.FindByName(roleName).Id,                    
        };
使用(var\u db=new ApplicationDbContext())
{
字符串roleName=“Admin”;
var rolemanger=new rolemanger(new RoleStore(new ApplicationDbContext());
如果(!roleManager.RoleExists(roleName))
{
var newRoleresult=rolemanger.Create(newidentityrole())
{
Name=roleName,
});                  
var userRole=new IdentityUserRole
{                                        
UserId=System.Web.HttpContext.Current.User.Identity.GetUserId(),
RoleId=roleManager.FindByName(roleName).Id,
};

我只需要将userRole保存到表AspNetUserRoles。我可以如何做?

要将
用户
角色
关联,需要使用
用户管理器
API的
AddToRole
方法:

public async Task<ActionResult> UserRole()
    {
            string roleName = "Admin";
            var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
            var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
            if (!roleManager.RoleExists(roleName))
            {
                var newRoleresult = await roleManager.CreateAsync(new IdentityRole()
                {
                    Name = roleName,
                });
                var result = await UserManager.AddToRoleAsync(
                    System.Web.HttpContext.Current.User.Identity.GetUserId(),
                    roleManager.FindByName(roleName).Name);
                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", result.Errors.First().ToString());
                }
            }
        return View(); // If you have
    }
public异步任务UserRole()
{
字符串roleName=“Admin”;
var rolemanger=new rolemanger(new RoleStore(new ApplicationDbContext());
var UserManager=newusermanager(newuserstore(newapplicationdbcontext());
如果(!roleManager.RoleExists(roleName))
{
var newRoleresult=await roleManager.CreateAsync(new IdentityRole())
{
Name=roleName,
});
var result=await UserManager.AddToRoleAsync(
System.Web.HttpContext.Current.User.Identity.GetUserId(),
rolemager.FindByName(roleName.Name);
如果(!result.successed)
{
ModelState.AddModelError(“,result.Errors.First().ToString());
}
}
return View();//如果有
}
UserManager