从 Azure Active Directory 中仅检索已启用的帐户
Retrieving only enabled accounts from Azure Active Directory
我可以使用 ActiveDirectoryClient 从 Azure Active Directory 获取所有用户。
有没有办法在 ASP.NET MVC 中仅从 azure AD 获取启用的用户,或者在检索所有用户后,将它们过滤为启用或禁用?
应该是。
Here is the list of all properties of the User object,以及其中哪些支持过滤的指示($filter)
And here is documentation on how to use filtering, paging, querying.
最后,interactive Azure AD Graph API Rest Documentation GetUsers 操作,您可以使用它来试验您的查询。
最后,您的 $filter
查询参数的值应为 accountEnabled eq true
(至少 - 这足以仅获取已启用的帐户,如果您想过滤更多,可以添加其他条件)。
整个 GET 请求应该像这样:
https://graph.windows.net/contoso.com/users?api-version=2013-11-08&$filter=accountEnabled%20eq%20true
User
对象的 AccountEnabled
布尔值 属性 指示用户是否可以登录。该属性支持服务端的过滤(在User
entity reference的"Supports"列中用“($filter)”表示),(所以不需要做客户端过滤)。
在以下示例中,我们遍历所有已启用的用户(graphClient
是 ActiveDirectoryClient
的一个实例):
// Iterates over all enabled users.
var users = await graphClient.Users.Where(u => u.AccountEnabled == true).ExecuteAsync();
do
{
foreach (var user in users.CurrentPage)
{
Console.WriteLine("Enabled user: {0}", user.UserPrincipalName);
}
users = await users.GetNextPageAsync();
} while (users != null);
如果您使用 Fiddler(或任何其他流量分析器),您会看到这会转化为以下对 Azure AD Graph 的 GET 请求 API:
https://graph.windows.net/{tenant-id}/users()
?$filter=accountEnabled%20eq%20true
&api-version=1.6
进行过滤(减去 URL 编码)的部分是:
$filter=accountEnabled eq true
我可以使用 ActiveDirectoryClient 从 Azure Active Directory 获取所有用户。
有没有办法在 ASP.NET MVC 中仅从 azure AD 获取启用的用户,或者在检索所有用户后,将它们过滤为启用或禁用?
应该是。 Here is the list of all properties of the User object,以及其中哪些支持过滤的指示($filter)
And here is documentation on how to use filtering, paging, querying.
最后,interactive Azure AD Graph API Rest Documentation GetUsers 操作,您可以使用它来试验您的查询。
最后,您的 $filter
查询参数的值应为 accountEnabled eq true
(至少 - 这足以仅获取已启用的帐户,如果您想过滤更多,可以添加其他条件)。
整个 GET 请求应该像这样:
https://graph.windows.net/contoso.com/users?api-version=2013-11-08&$filter=accountEnabled%20eq%20true
User
对象的 AccountEnabled
布尔值 属性 指示用户是否可以登录。该属性支持服务端的过滤(在User
entity reference的"Supports"列中用“($filter)”表示),(所以不需要做客户端过滤)。
在以下示例中,我们遍历所有已启用的用户(graphClient
是 ActiveDirectoryClient
的一个实例):
// Iterates over all enabled users.
var users = await graphClient.Users.Where(u => u.AccountEnabled == true).ExecuteAsync();
do
{
foreach (var user in users.CurrentPage)
{
Console.WriteLine("Enabled user: {0}", user.UserPrincipalName);
}
users = await users.GetNextPageAsync();
} while (users != null);
如果您使用 Fiddler(或任何其他流量分析器),您会看到这会转化为以下对 Azure AD Graph 的 GET 请求 API:
https://graph.windows.net/{tenant-id}/users()
?$filter=accountEnabled%20eq%20true
&api-version=1.6
进行过滤(减去 URL 编码)的部分是:
$filter=accountEnabled eq true