MS Graph - поиск Azure пользователей AD по подтексту их имени - PullRequest
0 голосов
/ 10 апреля 2020

Используя MS Graph API, я пытаюсь выполнить поиск в моей Azure AD базе пользователей.

Я могу легко искать данное имя (имя) или фамилию на основе либо равенства, либо с помощью предложение startswith() - вот так:

https://graph.microsoft.com/v1.0/users/?$filter=startswith(surname, 'Mill')

Это вернет всех пользователей, чья фамилия начинается с "Mill". Работает как шарм.

Но я бы хотел, чтобы пользователи могли вводить части имени, и я хотел бы найти по "фамилии содержит этот введенный пользователем текст" чем просто «начинается с».

Могу ли я сделать это - и если да - как? Ни like, ни contains не кажутся действительными операторами - и я считаю, что документации MS Graph довольно не хватает, честно говоря ...

Так что кто-нибудь выяснил, как искать "поле содержит текстовый "сценарий ios?

1 Ответ

0 голосов
/ 13 апреля 2020

Для этого требования до сих пор оно не было реализовано в графе api, как упоминал Кирон в комментариях. В настоящее время Graph API поддерживает только «startwith». Мы можем просто получить список пользователей и выполнить фильтр «содержать» в нашем коде.

Вы также можете проголосовать за эту функцию в этой обратной связи page.

Обновление:

Просто предоставьте обходной путь, который использует команду powershell в c# коде для реализации «содержащего» для вашей справки:

namespace ConsoleApp15
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world");

            Runspace runspace = RunspaceFactory.CreateRunspace();
            runspace.Open();
            Pipeline pipeline = runspace.CreatePipeline();
            pipeline.Commands.AddScript("Import-Module AzureADPreview -Force;");
            pipeline.Commands.AddScript("$password = ConvertTo-SecureString " + "\"123456\"" + " -AsPlainText -Force");
            pipeline.Commands.AddScript("$Cred = New-Object System.Management.Automation.PSCredential (" + "\"test@test.onmicrosoft.com\"" + ", $password)");
            pipeline.Commands.AddScript("Connect-AzureAD -Credential $Cred");
            pipeline.Commands.AddScript("Get-AzureADUser | Where-Object{($_.Surname -like '*Mill*')}");
            var results = pipeline.Invoke();

            foreach (var psObject in results)
            {
                System.Diagnostics.Debug.Write(psObject.BaseObject.ToString());
            }

        }
    }
}

Примечание: nuget, используемый в этом коде, только соответствует. Net Framework, но не. Net Ядро и нужен проект с x64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...