protected virtual async Task <string[]> GetUserRolesAsync(Guid userId) { // 通过工作单元来缓存用户角色,防止多次查询 if (CurrentUnitOfWork != null) { var userRoleItemKey = $"FindRolesByUser:{userId}"; return(await CurrentUnitOfWork.GetOrAddItem(userRoleItemKey, (key) => { // 取消同步调用 //var roles = AsyncHelper.RunSync(async ()=> await UserRoleFinder.GetRolesAsync(userId)); return UserRoleFinder.GetRolesAsync(userId); })); } return(await UserRoleFinder.GetRolesAsync(userId)); }