2014-04-18 154 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

相關問題