无法从标识 v2 中的标识用户角色导航到角色名称



在ASP Identity v2之前,你可以这样做。

var context = new ApplicationDbContext();
var role = context.Users.FirstOrDefault().Roles.Single(p => p.Role.Name == "Some role name");

升级到 Identity v2 后,应用程序中的此类行立即停止编译。IdentityUserRole 上不再有 Role 属性,因此不容易找到"管理员"角色中的所有用户。

我知道还有其他方法可以在角色中查找用户,但我的需求是不同的。这是一个简化的示例,但我需要构建一个具有特定角色信息的特定用户列表,如下所示:

var data = context.Users.Select(p => new
{
    Administrator = p.Roles.Any(role => role.Role.Name == "Administrator"),
    ServiceProvider = p.Roles.Any(role => role.Role.Name == "ServiceProvider"),
    Lender = p.Roles.Any(role => role.Role.Name == "Lender"),
    Inspector = p.Roles.Any(role => role.Role.Name == "Inspector")
});
似乎在

Identity v2 中不再可能进行这种查询。

我们可能会在角色管理器上添加新的帮助程序方法,以使所有用户都加入角色。 我们无法同时保留用户和角色上的导航属性,因为这会导致两个泛型类型的循环引用。这应该在版本 2.1 中添加。

相关内容

  • 没有找到相关文章

最新更新