我正在开发一个需要查询Azure AD的应用。该查询正在某些领域,但在某些领域,如手机号码,它不起作用。
使用名称
进行过滤时,查询正在运行var searchResults = await userCollection.Where(user =>
(user.UserPrincipalName.StartsWith(searchString) ||
user.DisplayName.StartsWith(searchString) ||
user.GivenName.StartsWith(searchString) ||
user.Surname.StartsWith(searchString) ||
user.Mail.StartsWith(searchString)) && user.AccountEnabled == true).ExecuteAsync();
但是对于手机号码和其他字段,它会抛出异常
var searchResults = await userCollection
.Where(x => x.Mobile == "+63 922 3965 021").ExecuteAsync();
这是例外 “为资源'User'的属性'mobile'指定了不支持或无效的查询过滤器子句。”
答案 0 :(得分:2)
您可以通过这种方式查询某些属性。 Linq查询为Azure AD Graph API生成Filter
表达式。但是其他人,比如手机号码,你就可以了。
对于用户对象,可以看到可过滤的属性in the reference。
您可以过滤的内容会被标记为(例如Surname
属性:" GET($ filter)")。