0

シナリオ: ユーザーがテキスト ボックスに名前 (姓または名のいずれか) を入力し、検索ボタンをクリックします。システムは、姓または名が既存の AD ユーザーと一致するすべてのユーザー名を (氏名とともに) 返す必要があります。

問題: 入力テキストが姓と名の両方に対して同時にチェックされません。

    List<string> GetUserDetails()
    {
        List<string> allUsers = new List<string>();
        PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "myDomain",
                                                    "OU=ounit,dc=myDC,dc=com");

        UserPrincipal qbeUser = new UserPrincipal(ctx);

        qbeUser.GivenName = _UITxtUserName.Text;
        qbeUser.Surname = _UITxtUserName.Text;

        PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
            foreach (var found in srch.FindAll())
            {

                allUsers.Add(found.DisplayName +"(" + found.SamAccountName+")");
            }

            allUsers.Sort();

        return allUsers;

    }

_UITxtUserName (テキスト ボックス)に問題があることがわかります。しかし、どのように修正できるかわかりません。.Net 3.5 を使用。

4

1 に答える 1

4

作業コード

List<string> GetUserDetails()
    {
        List<string> allUsers = new List<string>();
        PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "myDomain",
                                                "OU=ounit,dc=myDC,dc=com");

        UserPrincipal qbeUser = new UserPrincipal(ctx);

        qbeUser.GivenName = _UITxtUserName.Text;

        PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
        foreach (var found in srch.FindAll())
        {

            allUsers.Add(found.DisplayName + "(" + found.SamAccountName + ")");
        }
        qbeUser = null; 
        qbeUser = new UserPrincipal(ctx);

        qbeUser.Surname = _UITxtUserName.Text;

        PrincipalSearcher srch1 = new PrincipalSearcher(qbeUser);
        foreach (var found in srch1.FindAll())
        {

            allUsers.Add(found.DisplayName + "(" + found.SamAccountName + ")");
        }

        allUsers.Sort();

        return allUsers;
    }
于 2013-10-14T13:31:05.527 に答える