C# 如何让用户角色检查它是什么?

C# 如何让用户角色检查它是什么?,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,因此,我正在开发我的第一个ASP.NET COre 3.0 MVC应用程序,我刚刚进入了Identity,现在我想在列表中显示用户角色,这就是我所做的 @model CoreBuddyLite.ViewModel.UserManagementIndexViewModel <tbody> @foreach (var user in Model.Users) { <tr> <td&

因此,我正在开发我的第一个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>
我不应该把它作为属性添加到我的UserAccount类中,因为它来自IdentityUser

public class UserAccount : IdentityUser
{

}

IdentityUser
IdentityRole
是两种不同的类型

正如JamesS所指出的,在
用户
角色
之间有一个复合连接。您可以在表
AspNetUserRoles
中找到。它将
AspNetUsers
AspNetUserRoles
表链接在一起

我不认为实体框架在ASP.NET CORE 3中是标准的,但是如果您已经在使用它,您可以在控制器中使用
\u context
对象(
ApplicationDbContext
)来使用fluent API和
Include()
方法构建列表

否则,您可能希望按照建议在SQL中执行存储过程或查看路由

但是,请记住,
ApplicationUser
可能有许多角色,因此razor视图必须包含嵌套的
foreach()
循环


使用版本3不适合胆小的人,我钦佩你的勤奋。

为什么不创建一个存储过程,根据用户id返回所有角色?我可以,但显然
角色
不是身份服务器的一部分,或者我遗漏了什么?这是真的,但是AspNetUserRoles通常使用用户ID为AspNetUser提供一个外键
public class UserAccount : IdentityUser
{

}