Запрос LDAP с Ajax - ASP.NET - PullRequest
       2

Запрос LDAP с Ajax - ASP.NET

0 голосов
/ 27 октября 2019

Я пытаюсь создать веб-сайт, на котором будет отображаться информация о пользователях (например, электронная почта, телефон, имя и т. Д.) Из Active Directory с C #. Используя приведенный ниже код, я смог получить всю необходимую информацию:

            <table class="table table-striped">
            <thead>
                <tr>
                    <th colspan="7" class="title-center">Contacts Directory</th>
                </tr>
                <tr>
                    <th colspan="7" class="title-center">
                        <div class="input-group mb-3 custom_search">
                            <div class="input-group-prepend">
                                <span class="input-group-text" id="basic-addon1"><i class="fas fa-search"></i></span>
                            </div>
                            <input id="searchBox" type="text" class="form-control custom_search" placeholder="Search" aria-describedby="basic-addon1" />
                        </div>
                    </th>
                </tr>
                <tr>
                    <th scope="col">No.</th>
                    <th scope="col">Site</th>
                    <th scope="col">Full Name</th>
                    <th scope="col">Position</th>
                    <th scope="col">Email Address</th>
                    <th scope="col">IP Phone</th>
                    <th scope="col">Mobile No.</th>
                </tr>
            </thead>
            <tbody>

                    <asp:PlaceHolder ID="RowsData" runat="server"></asp:PlaceHolder>

            </tbody>
        </table>

и код C # (запускается при загрузке формы):

DirectoryEntry de = new DirectoryEntry("LDAP://domain.com", "user", "password");


        SearchResultCollection results;
        DirectorySearcher ds = null;
        ds = new DirectorySearcher(de);

        ds.Filter = "(&(objectCategory=User)(objectClass=person))";;
        ds.Sort = new SortOption("cn", System.DirectoryServices.SortDirection.Descending);
        results = ds.FindAll();

        int num = 1;
        StringBuilder userdata = new StringBuilder();
        foreach (SearchResult sr in results)
        {
            if (sr.Properties["physicaldeliveryofficename"].Count > 0) { 
                userdata.Append("<tr>");
                userdata.Append("<td>" + num + "</td>");
                num++;
                if (sr.Properties["physicaldeliveryofficename"].Count > 0) 
                    userdata.Append("<td>" + sr.Properties["physicaldeliveryofficename"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                if (sr.Properties["cn"].Count > 0)
                    userdata.Append("<td>" + sr.Properties["cn"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                if (sr.Properties["title"].Count > 0)
                    userdata.Append("<td>" + sr.Properties["title"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                if (sr.Properties["mail"].Count > 0)
                    userdata.Append("<td>" + sr.Properties["mail"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                if (sr.Properties["ipphone"].Count > 0)
                    userdata.Append("<td>" + sr.Properties["ipphone"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                if (sr.Properties["telephonenumber"].Count > 0)
                    userdata.Append("<td>" + sr.Properties["telephonenumber"][0].ToString() + "</td>");
                else
                    userdata.Append("<td></td>");
                userdata.Append("</tr>");
            } 
        }

        RowsData.Controls.Add(new Literal { Text = userdata.ToString() });

Теперь вот проблема. У меня есть текстовое поле, которое я бы использовал для поиска конкретного пользователя, используя, скажем, его имя, и это должно происходить с использованием Ajax без обновления страницы. Кроме того, в то время как я набираю текстовое поле, результат должен быть отфильтрован, даже если имя не является полным, это должно привести к потенциальным результатам.

Как я могу этого достичь? Буду признателен за ваши предложения по этому вопросу.

Спасибо,

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