2015-05-07 40 views
1

我試圖獲取用戶角色並對其進行修改。 我試過很多方法來獲取用戶角色,但沒有任何作用。 有什麼缺失? 我可以得到正確的用戶實體,但角色始終爲空。 有什麼辦法可以正確地做到嗎? 感謝Asp.net MVC 5無法獲取用戶角色

var user = UserManager.Users.Single(u=>u.Id==id); 
var roles = user.Roles; 
roles.Add(....) 


var user = UserManager.Users.Single(u=>u.Id==id); 
user.IsinRole("rolename"); 

回答

1

您可以通過索賠獲得他們:

var roles = ((ClaimsIdentity)User.Identity).Claims 
      .Where(c => c.Type == ClaimTypes.Role) 
      .Select(c => c.Value); 

將用戶添加到角色,你可以做(​​確保數據庫雖然作用存在):

var roleresult = UserManager.AddToRole(currentUser.Id, "RoleName"); 
+0

謝謝,但我使用管理員的權利,並希望修改其他用戶的角色,我試圖用user.Claims(從我的第一個)替換(ClaimsIdentity)User.Identity)在代碼行),仍然沒有工作,任何方法來解決它? – Neardreams

+0

@Neardreams沒有probs,只需使用'UserManager'來添加和刪除任何角色的用戶 – mattytommo

+0

非常感謝! UserManger.GetRoles(),UserManger.RemoveFromRole(),UserManager.AddToRole()這些方法的作品。 – Neardreams