2014-04-18 113 views
0

有一个在我的应用程序的现有代码,这是否:如何将用户添加到角色?

if (HttpContext.Current.User.IsInRole("Customer Account Admin")) 
        // 
        { 
        } 
        else 
        { 
         mi = radmenu1.Items.FindItemByText("Admin"); 
         radmenu1.Items.Remove(mi); 
        } 

我们没有使用旧的角色管理器是什么使用户在该角色 。我们正在使用ASP.NET 2.0的身份,这似乎并没有做到这一点:

var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 


    if (manager.AddToRole(manager.FindByName(UserName.Text).Id, "Customer Account Admin").Succeeded) 
    { 
     c.logActivity("Register.aspx.cs", "REG_USER_ROLE", "Setting user to Admin role succeeded"); 
            } 
    } 

回答

1

您可以使用IsInRole

private ApplicationUserManager _userManager; 

public ApplicationUserManager UserManager 
{ 
    get 
    { 
     if (_userManager == null) 
     { 
     _userManager = HttpContext.GetOwinContext() 
      .GetUserManager<ApplicationUserManager>(); 
     } 
     return _userManager; 
    } 
} 

bool isAdmin = UserManager.IsInRole(User.Identity.GetUserId(), 
    "Customer Account Admin"); 
+0

这不就是检查他是那个角色吗?我想把他加入角色。 – user2471435

+0

我不需要那个。我不需要知道他是否在角色中。我需要把他加入这个角色。 – user2471435

+1

你原来说**如何让用户在一个角色中?**总之,** AddToRole **应该可以工作。你有尝试'var roleResult = await UserManager.AddUserToRolesAsync(user.Id,RoleNames);'? ** AddUserToRolesAsync **辅助方法附带[Microsoft ASP.NET身份示例](https://www.nuget.org/packages/Microsoft.AspNet.Identity.Samples) – Win

相关问题