为什么用户过滤会导致"不支持的查询"?

时间:2017-12-04 16:39:40

标签: azure-active-directory microsoft-graph

我正在使用.NET Microsoft Graph API对我的Azure AD发出查询,如下所示:

var userRequest = _graphClient.Users.Delta();
var filter = "startswith(displayName,'K')";
var users = await userRequest.Request().Filter(filter).GetAsync();

根据Fiddler流量,这会导致HTTP GET看起来像:

GET /v1.0/users/microsoft.graph.delta?$filter=startswith(displayName,'K')

响应:

400 Bad Request
Content-Type: application/json
Preference-Applied: odata.track-changes

{
  "error": {
    "code": "Request_UnsupportedQuery",
    "message": "Unsupported query.",
    "innerError": {
      "request-id": "UUID",
      "date": "2017-12-04T16:26:23"
    }
  }
}

我甚至尝试过像:

这样的过滤器
var filter = "accountEnabled eq true";

但同样发生400错误。

删除过滤器会导致查询成功。

为什么此过滤器会导致"不支持的查询"?从我在Supported queries, filters, and paging options文档中读到的内容来看,这听起来像是有效的查询。

1 个答案:

答案 0 :(得分:0)

/users端点支持$filter=startsWith()查询参数,但/users/delta端点不支持/delta端点。 {{1}}端点有许多查询限制,包括此限制。