我目前正在使用带有 CreateAsync(newRoleName) 方法的 RoleManager 将角色添加到我们的数据库中 - 这可以正常工作。但是当我尝试查询该角色时,它总是返回它不存在(即使我可以在数据库中看到它)。
谁能提供一些关于我为什么不能使用角色的见解?
var roleExists = roleManager.RoleExistsAsync(role);
if (!roleExists.Result)
{
var newRole = new IdentityRole(role)
{
Name = role,
NormalizedName = role.ToUpper(),
};
var roleCreated = roleManager.CreateAsync(newRole);
Thread.Sleep(500); // Used to get result back first.
var roleExistsYet = roleManager.RoleExistsAsync(role);
if (!roleExists.Result)
{
// ALWAYS Returns [False]
}
}
最初的问题是在我们用UserManager创建新用户的时候出现的,下面的方法会报错
var roleAddResult = userManager.AddToRoleAsync(newUser, "TestRole123");
异常错误:角色 [TESTROLE123] 不存在。
注意:我可以在 dbo.AspNetRoles 表中的数据库中看到角色“TestRole123”(或任何其他角色)的条目。
任何见解或帮助表示赞赏。
环境:Visual Studio 2017、Asp.NET Core、C#