В C # как установить поле активного ключа «офис», чтобы я мог показать расположение наших пользователей в Outlook - PullRequest
4 голосов
/ 21 октября 2010

В c # я пытаюсь установить поле офиса

alt text

Когда я делаю это:

ADEntry.Properties ["офис"]. Добавить ("Аляска");

Там написано, что офис не существует.

Может кто-нибудь сказать мне, где взять это свойство?

Спасибо

кальцит

Ответы [ 2 ]

7 голосов
/ 03 августа 2016

После долгих исследований я понял ..

string Username = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Substring(System.Security.Principal.WindowsIdentity.GetCurrent().Name.IndexOf("\\") + 1);

 string office = string.Empty;

    using (var context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["DOMAIN"].ToString()))
    {
        using (var userPrincipal = new UserPrincipal(context))
        {
            userPrincipal.SamAccountName = Username;

            using (PrincipalSearcher search = new PrincipalSearcher(userPrincipal))
            {
                UserPrincipal result = (UserPrincipal)search.FindOne();

                DirectoryEntry directoryEntry = result.GetUnderlyingObject() as DirectoryEntry;

                if (directoryEntry.Properties["physicalDeliveryOfficeName"].Count > 0
                        && directoryEntry.Properties["physicalDeliveryOfficeName"][0] != null
                        && !string.IsNullOrWhiteSpace(directoryEntry.Properties["physicalDeliveryOfficeName"][0].ToString()))
                {
                    office = directoryEntry.Properties["physicalDeliveryOfficeName"][0].ToString();
                }
            }
        }
    }
2 голосов
/ 21 октября 2010

Посетите веб-сайт Ричарда Мюллера - у него есть тонны справочных листов Excel о том, какое свойство в пользовательском интерфейсе AD сопоставлено с каким базовым свойством AD в DirectoryEntry.

Ваш бетон "пример office »сопоставляется со свойством physicalDeliveryOfficeName в коллекции DirectoryEntry s .Properties ....

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