asp.net identity 3不支持角色列表的异步

时间:2015-12-29 13:15:16

标签: asp.net-core asp.net-core-mvc asp.net-identity-3

我有以下代码

private readonly RoleManager<IdentityRole> _roleManager;

private async Task DoStuff(MyViewModel viewModel)
{
    var roles =  await _roleManager.Roles;
    var mylist = await _myRepository.SelectAll();
}

然而,角色管理器支持的唯一方法是

public virtual IQueryable<TRole> Roles { get; }

而不是异步方法。

Github reference

仅产生_roleManager.Roles.ToList()方法,而不是ToListAsync()

所以我被迫将我的代码更改为

 var roles =  _roleManager.Roles;

然而现在它不再等待并且会导致意外行为,因为该方法本身是异步的。

问题:

无论如何,我仍然可以使用异步方法来实现上述

1 个答案:

答案 0 :(得分:0)

据我所知,async方法不支持通过rolemanager获取所有角色。

您可以通过databasecontext访问角色来解决它:

var roles = await this._context.Roles.ToListAsync();