Sharepoint Designer 2007 - Поле формы с кнопкой АДРЕСНАЯ КНИГА - PullRequest
1 голос
/ 03 ноября 2011

Я разрабатываю рабочий процесс утверждения в SP Designer 2007. Мне нужно поле формы, которое позволит пользователю проверить, что он ввел рабочий адрес электронной почты из Active Directory в поле формы.(Это будет адрес электронной почты руководителя пользователя, который дает разрешение - если этот адрес электронной почты неверен, весь процесс будет сорван).Я думаю, что это будет работать так же, как кнопка адресной книги в форме электронной почты.Или, что еще лучше, например кнопку «Проверить имя», которая просто проверяет введенный в настоящее время адрес электронной почты и проверяет его, подчеркивая его или каким-либо другим визуальным признаком.

Похоже на очевидное полезное поведение - я должен что-то упустить - яновичок в SP.Спасибо!

1 Ответ

0 голосов
/ 03 ноября 2011

Не можете ли вы выполнить LDAP-запрос, используя имя пользователя текущего пользователя, получив пользовательское поле «Менеджер».Используйте его, чтобы получить адрес электронной почты менеджера.

Таким образом, пользователь переопределяет адрес электронной почты только в том случае, если он явно хочет, чтобы кто-то еще использовал.

Вот небольшой код, который поможет вам выполнить запрос LDAP

  using System.DirectoryServices;
//DirectoryEntry de = new DirectoryEntry("LDAP://wel0101");

    DirectoryEntry de = new DirectoryEntry();
    DirectorySearcher deSearch = new DirectorySearcher(de);
    //deSearch.PropertiesToLoad.Add("Email");

    SearchResultCollection results;
    deSearch.SearchScope = SearchScope.Subtree;
    deSearch.Filter ="(&(objectClass=user)(cn=bacchu*))";
    //deSearch.
    results = deSearch.FindAll();

    foreach (SearchResult result in results)
    {
        ResultPropertyCollection props = result.Properties;
        richTextBox1.Text += "------------------------\n";
        foreach (string propName in props.PropertyNames)
        {
            richTextBox1.Text += propName + ":\"" +  props[propName][0] + "\"\n";
        }
    }

    richTextBox1.Text += "Done" + DateTime.Now.ToString() + "\n";
...