我在 ASP.NET Core 应用程序中遇到 UserManager.FindByNameAsync 问题,即使用户存在于数据库中,它也会返回 null。我尝试根据用户名检索用户角色,但该方法无法找到用户。
public async Task<string> GetUserRolesByUserId(string userName)
{
var user = await _userManager.FindByNameAsync(userName);
if (user == null)
{
return "";
}
var roles = await _userManager.GetRolesAsync(user);
return string.Join(",", roles);
}
预期行为: 该方法应该找到用户“TonyMontana”并返回他们的角色。
实际行为: FindByNameAsync 为用户“TonyMontana”返回 null,即使数据库中存在该用户且具有完全相同的用户名。
附加信息:
我已确认数据库中存在用户“TonyMontana”。 数据库中的用户名与传递给 FindByNameAsync 的用户名的大小写匹配。 UserManager 实例在 Startup.cs 中配置。 我不确定为什么 FindByNameAsync 无法找到用户。这是区分大小写的问题,还是我的应用程序中 UserManager 的配置或使用方式可能存在问题?
任何见解或建议将不胜感激!