C# 尝试通过图形查询从Azure AD检索照片时出现加载时间问题
我目前使用以下代码从Azure广告中获取公司目录的信息:C# 尝试通过图形查询从Azure AD检索照片时出现加载时间问题,c#,azure-active-directory,azure-ad-graph-api,C#,Azure Active Directory,Azure Ad Graph Api,我目前使用以下代码从Azure广告中获取公司目录的信息: List<QueryOption> options = new List<QueryOption>(); options.Add(new QueryOption("$filter", "accountEnabled%20eq%20true")); options.Add(new QueryOption("$select", "displayName,companyName,profilePhoto,userPrin
List<QueryOption> options = new List<QueryOption>();
options.Add(new QueryOption("$filter", "accountEnabled%20eq%20true"));
options.Add(new QueryOption("$select", "displayName,companyName,profilePhoto,userPrincipalName"));
IGraphServiceUsersCollectionPage users = await gsc.Users.Request(options).GetAsync();
userResult.AddRange(users);
while (users.NextPageRequest != null)
{
users = await users.NextPageRequest.GetAsync();
userResult.AddRange(users);
}
这一点将页面加载时间提高到30秒以上,我在减少这一时间方面遇到了问题。因此,我在这一具体情况下的问题如下:
有关这方面的更多信息,您可以参考官方教程:考虑将foreach中的代码移动到一个方法中,该方法返回Task并执行Task.Whallon为用户创建的所有任务
foreach(User u in userResult)
{
Stream photo = await gsc.Users[u.UserPrincipalName].Photo.Content.Request().GetAsync();
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = photo.Read(buffer, 0, buffer.Length)) > 0)
ms.Write(buffer, 0, read);
imgMe.ImageUrl = "data:image/jpg;base64," + Convert.ToBase64String(ms.ToArray());
}
}