【发布时间】:2019-03-23 17:53:12
【问题描述】:
嘿,我写了一些代码来下载我的 Cognito 用户池中的所有用户,但它似乎永远持续下去。我很确定我正确使用了分页标记。 Cognito 的 UI 估计我有大约 10,000 个用户,但是我在循环中放置了一个断点分钟,而我的 List 有超过 50,000 个用户,这没有任何意义。
非常感谢您的帮助!
using (AmazonCognitoIdentityProviderClient provider = AuthorizedClient())
{
try
{
List<UserType> users = new List<UserType>();
bool continueListing = true;
ListUsersResponse response = provider.ListUsers(
new ListUsersRequest
{
UserPoolId = UserPoolId,
Limit = 60,
AttributesToGet = new List<string>
{
"email"
}
});
users.AddRange(response.Users);
string paginationToken = response.PaginationToken;
while (continueListing)
{
response = provider.ListUsers(
new ListUsersRequest
{
UserPoolId = UserPoolId,
Limit = 60,
PaginationToken = paginationToken,
AttributesToGet = new List<string>
{
"email"
}
});
if (response.Users.Count < 60)
{
continueListing = false;
}
else
{
paginationToken = response.PaginationToken;
users.AddRange(response.Users);
}
}
return users;
}
catch (Exception)
{
//_session.NotifyUser(Notification.GeneralError());
//_logger.LogError(e.Message);
}
return null;
}
【问题讨论】:
-
当
users.Count()为50,000 时,users.Select(z => z.SomePropertyThatIsTheUserID).Distinct().Count()返回什么?
标签: c# amazon-web-services amazon-cognito