无法使用通配符搜索模式搜索 Microsoft Graph Api V1.0 用户

2024-04-21

我正在尝试使用以下代码片段基于通配符正则表达式匹配来搜索用户:

var users = await graphServiceClient.Users.Request().Select(e => new {
    e.DisplayName,
    e.GivenName,
    e.PostalCode
}).Filter(RegexMatch(DisplayName("Rob.* Thomas")
).GetAsync();

因此,上面应该匹配用户“Robert Thomas”,并且 RegexMatch 目前在过滤器关键字列表中不可用,我只是用作实现此任务的示例。 以下应与 Robin Thomas 匹配:- Filter(RegexMatch(DisplayName("Robi.? Thomas") 以及 UserPrincipalName 搜索和 id 搜索等情况下。

我想获得一些类似的结果,但在 MS Graph V1.0 文档中找不到任何正则表达式搜索。

请帮助我使用 MS Graph API V1.0 进行正则表达式匹配


Microsoft GraphV1.0目前不支持通配符之类* or %like%虽然有$search https://learn.microsoft.com/en-us/graph/query-parameters#search-parameter目前的选项 仅支持messages and person收藏。

Work Around:

你可以尝试以下方式

         var users = await graphServiceClient.Users
        .Request()
        .Filter("startswith(displayName,'Rob') and startswith(UserPrincipalName ,'Thomas')")
        .Select( e => new {
                 e.DisplayName,
                 e.GivenName,
                 e.PostalCode
                 })
        .GetAsync();

Note: 可以绑定多个and, or子句来执行您的自定义搜索。

希望它会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用通配符搜索模式搜索 Microsoft Graph Api V1.0 用户 的相关文章

随机推荐