首页 > 解决方案 > Asp.NET Core FindByNameAsync 找不到用户

问题描述

我使用 ASP.NET Core Identity 并尝试“FindByNameAsync”方法来获取具有用户名的用户。我确定有用户名的用户。但是“FindByNameAsync”找不到用户。“GetByUserName”是我的方法,它使用用户名查询数据库,并按我的预期找到了用户。FindByNameAsync 有错误吗?

//this is can't find the user with username
var appUser = await UserService.FindByNameAsync(userName);

//this is my method and it works well
var appUser = UserService.GetByUserName(userName);

标签: asp.netasp.net-mvcasp.net-coreasp.net-identity

解决方案


我通常使用 UserManager 来查找有关用户的信息

    private readonly UserManager<User> _userManager;

    public async Task<User> GetUserAsync(ClaimsPrincipal principal)
    {
        return await _userManager.GetUserAsync(principal);
    }

    public async Task<User> FindByNameAsync(string username)
    {
        return await _userManager.FindByNameAsync(username);
    }

    public async Task<User> FindByEmailAsync(string email)
    {
        return await _userManager.FindByEmailAsync(email);
    }

    public async Task<User> FindByIdAsync(string id)
    {
        return await _userManager.FindByIdAsync(id);
    }

你可以在这里查看我的完整源代码


推荐阅读