Asp.net
如何在 Asp.Net Identity 中獲取使用者的角色名稱
我試圖弄清楚如何在身份框架中找到使用者角色名稱。
我有這樣的配置,只有一個角色分配給一個使用者。
所以,我嘗試使用
public string GetUserRole(string EmailID, string Password) { var user = await _userManager.FindAsync(EmailID, Password); var roleid= user.Roles.FirstOrDefault().RoleId; }但我得到的只是 RoleId 而不是 RoleName。
誰能幫我找到使用者的 RoleName 嗎?
在您的程式碼中,
user對象表示AspNetUsers具有導航屬性的表,該屬性Roles表示AspNetUserInRoles表而不是AspNetRoles表。因此,當您嘗試瀏覽user.Roles.FirstOrDefault()它為您提供了
AspNetUserInRoles哪些儲存 UserId 和 RoleId。相反,您可以嘗試
UserManger’sGetRoles方法,該方法將返回您List<string>分配的角色使用者。但是正如您所提到的,它只是一個角色,因此您可以從GetRoles方法的結果中獲取第一個值。您的功能應該類似於下面給出的功能:
public async string GetUserRole(string EmailID, string Password) { var user = await _userManager.FindAsync(EmailID, Password); string rolename = await _userManager.GetRoles(user.Id).FirstOrDefault(); return rolename; }