从 ASPNetUsers 表中检索用户信息

Posted

技术标签:

【中文标题】从 ASPNetUsers 表中检索用户信息【英文标题】:Retrieve user information from ASPNetUsers table 【发布时间】:2022-01-01 22:20:36 【问题描述】:

我对使用 Blazor WASM 和托管的 ASP.NET Core 非常陌生。我已经设置了将所有注册用户存储到 ASPNetUsers 表的登录。我想知道如何检索这些用户以向其他用户显示信息。例如,我希望能够让一个用户登录,然后他可以搜索所有其他已注册到应用程序中的用户。我如何才能显示已注册到应用程序的所有用户的列表,存储在 ASPNetUsers 表中

选项

检索并发回

    [HttpGet]
    public async Task<ActionResult<IEnumerable<User>>> Get()
    
        var result = userManager.Users.FirstOrDefault();

        User x = new User();
        x.Username = result.Email;

        List<User> giveback = new List<User>();
        giveback.Add(x);
        
        return giveback;
    

【问题讨论】:

【参考方案1】:

要检索所有用户,请访问 UserManager 上的 Users 属性:

var users = UserManager.Users.ToList();

您帖子中的图片显示您仅访问静态成员。您没有使用 UserManager 的实例。

你需要在你的控制器中注入一个实例:

readonly UserManager<ApplicationUser> _userManager;

public MyController(UserManager<ApplicationUser> userManager)

    _userManager = userManager;


[HttpGet]
public ActionResult<IEnumerable<Ticket>> Get()

   var user = _userManager.Users.FirstOrDefault();

【讨论】:

感谢您的回复。当我尝试执行上述代码时,我的 UserManager 对象没有出现“用户”。 您正在从 Microsoft.AspNetCore.Identity 访问的 UserManager 吗? docs.microsoft.com/en-us/dotnet/api/… 是的。我已编辑发布以显示我得到的属性 答案已更新, 感谢您回来。 ApplicationUser 位于模型文件夹内的服务器端。当我尝试使用 @using ProjectName.Server.Models 时,它似乎无法识别它。如何从我的 razor 页面访问 ApplicationUser 类以发出 http 请求?

以上是关于从 ASPNetUsers 表中检索用户信息的主要内容,如果未能解决你的问题,请参考以下文章

JWT 从 Laravel 中的令牌中检索经过身份验证的用户

将用户迁移到 Identity Server

如何使用 Fluent API 配置从 AspNetUsers 表到...的一对多关系

通过 React 从 mongoDB 检索数据

从 MySQL 表中检索属于一组用户的最新模型

如何使用另一个有关系的表中的数据(user_id)从用户表中检索用户名