Как получить роль пользователя, чтобы проверить, что это такое? - PullRequest
0 голосов
/ 17 января 2019

Итак, я занимаюсь разработкой своего первого приложения ASP.NET COre 3.0 MVC, и я только что получил Identity, и теперь я хочу показать роль пользователей в списке, вот что я сделал.

@model CoreBuddyLite.ViewModel.UserManagementIndexViewModel
 <tbody>
        @foreach (var user in Model.Users)
        {
            <tr>
                <td>@user.UserName</td>
            </tr>
        }
    </tbody>

Если бы я попытался сделать @user.R, то Роль или Роли не существует. Я на 90% уверен, что он существовал в предыдущих версиях, по крайней мере, в ASP.NET Core 1.0.

Как правильно получить роль, назначенную пользователю?

public class UserManagementIndexViewModel
{
    public List<UserAccount> Users { get; set; }
}

И мне не нужно было добавлять его как свойство в мой класс UserAccount, так как он получен из IdentityUser

public class UserAccount : IdentityUser
{

}

1 Ответ

0 голосов
/ 17 января 2019

IdentityUser и IdentityRole - это два разных типа.

Как указывает JamesS, между Users и Roles существует составное соединение. Вы можете найти это в таблице AspNetUserRoles. Он связывает вместе таблицы AspNetUsers и AspNetUserRoles.

Я не думаю, что Entity Framework входит в стандарт ASP.NET CORE 3, но если вы уже используете его, вы можете использовать объект _context (ApplicationDbContext) в вашем контроллере, чтобы создать свой список, используя свободный API и Include() & ThenInclude() методы.

В противном случае вы можете просто перейти к хранимой процедуре или просмотреть маршрут в SQL, как это предлагается.

Однако имейте в виду, что ApplicationUser может иметь много ролей, поэтому ваше представление бритвы должно включать вложенный цикл foreach().

Работа с версией 3 не для слабонервных, я восхищаюсь вашим усердием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...