私はユーザーグループの情報を以下のコードスニペットを使用してAzure Active Directoryから入手しようとしています。Azure Active Directoryからユーザーグループを取得できません
public async Task<List<string>> GetUserGroupsAsync(string alias)
{
var groupList = new List<string>();
try
{
Microsoft.Azure.ActiveDirectory.GraphClient.IUser userObject = getUserObject(alias);
Task t = Task.Run(async() =>
{
var grouppages = await ((IUserFetcher)userObject).MemberOf.OfType<Microsoft.Azure.ActiveDirectory.GraphClient.Group>().ExecuteAsync();
do
{
groupList.AddRange(grouppages.CurrentPage.Select(g => g.Mail != null ? g.Mail.Trim() : null).Where(eMail => !string.IsNullOrWhiteSpace(eMail)).ToList());
grouppages = await grouppages.GetNextPageAsync();
} while (grouppages != null);
});
t.Wait();
}
catch
{
throw;
}
return groupList;
}
問題:私はいくつかのユーザーのための例外の下に取得しています。
System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> Microsoft.Data.OData.ODataErrorException: The specified page token value has expired and can no longer be included in your request. ---> System.Data.Services.Client.DataServiceQueryException: An error occurred while processing this request. ---> System.Data.Services.Client.DataServiceClientException: {"odata.error":{"code":"Directory_ExpiredPageToken","message":{"lang":"en","value":"The specified page token value has expired and can no longer be included in your request."}}}
at System.Data.Services.Client.BaseAsyncResult.EndExecute[T](Object source, String method, IAsyncResult asyncResult)
at System.Data.Services.Client.QueryResult.EndExecuteQuery[TElement](Object source, String method, IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at System.Data.Services.Client.QueryResult.EndExecuteQuery[TElement](Object source, String method, IAsyncResult asyncResult)
at System.Data.Services.Client.DataServiceRequest.EndExecute[TElement](Object source, DataServiceContext context, String method, IAsyncResult asyncResult)
at System.Data.Services.Client.DataServiceContext.EndExecute[TElement](IAsyncResult asyncResult)
at Microsoft.Azure.ActiveDirectory.GraphClient.Extensions.DataServiceContextWrapper.<ExecuteAsync>b__6b[TSource,TInterface](IAsyncResult i)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
この問題の解決にお役立てください。非常に役に立ちます。
エラーメッセージは十分に明白ではありませんか?アクセストークンの有効期限が切れています。 Btw、あなたは 'getUserObject'関数も含めるべきです –