2017-01-26 5 views
0

Azure ADには20,000人以上のユーザーがいます。 displayName、city、accountName、departmentなどのプロパティを持つすべてのユーザーを読み込もうとしています。私はすべてのユーザーを読むことができません。私はすべてのユーザーを取得するためにskiptokenを使用しています。ここでAzure ADユーザーをプログラムでGraph APIを使用して読み込むには制限がありますか?

はskiptokenを抽出するための私のサンプルコードです:

public static string ExtractSkipToken(string responseString) 
    { 
     if (responseString.Contains("skiptoken=X")) 
     { 
      var startString = "skiptoken=X'"; 
      var endString = "'"; 
      var startIndex = responseString.IndexOf(startString, StringComparison.Ordinal); 
      var subText = responseString.Substring(startIndex + startString.Length); 
      var endIndex = subText.IndexOf(endString, StringComparison.Ordinal); 
      var skipToken = subText.Substring(0, endIndex); 
      return skipToken; 
     } 

     return string.Empty; 
    } 

は、誰もがそれをやっていますか?

答えて

1

Azure AD Graph APIは、this documentで説明されているページングをサポートしています。考え方は、結果の次のページへのリンクが現在のページからの応答で提供されるということです。私は手動でskiptokenを解析するのではなく、JSONレスポンスで提供されたリンクを使用することをお勧めします。

このパターンに従っており、ページングが期待どおりに動作しない場合は、ページングがどこに間違っているかについて詳しく説明してください。

+0

ご返信ありがとうございます。私は、読み込まれたユーザー情報も持っているので、responseStringを解析します。提供されたリンクをJSONレスポンスで使用することを意味します。私はあなたのrefernceに続き、$ top = 999で今私のRequestUrlを変更して、今は7kまたは8kユーザーのようになっています。 – user2584780

+0

問題が見つかりました。それはresponseStringからの問題を解析していました。私は((JObject)result).First.Children()をIJEnumerable として使用していました。私がJObject.Parse(responseString)["value"]を使うと、私はいつもresponseString内のユーザーを収集することができます。手伝ってくれてどうもありがとう。 – user2584780

関連する問題