2016-12-10 93 views
2

祝你平安從用戶刪除所有角色MVC 5

我試圖刪除用戶的所有角色禁用他的權限,並阻止他訪問某些網頁。

我發現這個方法來刪除一個角色和它的工作:

await UserManager.RemoveFromRoleAsync(userid, role); 

其中userid是,我要禁用其權限的用戶ID。

所以,我用這個代碼來自同一用戶

foreach (string role in roles) { 

await UserManager.RemoveFromRoleAsync(userid, role); 

} 

刪除所有角色,但我堅持在這裏如何AspNetRoles表角色編號它們保存到

string[] roles 

任何幫助嗎?

還是有另一種方法來刪除用戶的所有角色?

我使用asp.net身份版2

回答

9

用戶管理器有一個方法Task<IList<string>> GetRolesAsync(TKey userId)其中

返回角色的用戶

而且還Task<IdentityResult> RemoveFromRolesAsync(TKey userId, params string[] roles)

從多個角色中刪除用戶

所以將二者結合起來,以達到你想要什麼

var roles = await UserManager.GetRolesAsync(userid); 
await UserManager.RemoveFromRolesAsync(userid, roles.ToArray()); 
+0

感謝您快速在回答。當我用兩行寫的,發生了錯誤的錯誤消息:不能轉換從ILIST 到字符串,我解決了這個問題,通過使用await UserManager.RemoveFromRolesAsync(userid,roles.ToString());但角色沒有刪除 –

+0

我的錯誤。將角色轉換爲字符串數組。原始調用返回一個列表,但第二個方法需要一個數組。我忘了將它轉換爲數組。我已更新答案以反映變化。 – Nkosi

+0

工作..非常感謝! –

相關問題