Ошибка при получении доменного имени Active Directory для пользователей, использующих C # .net на Dev Server (работает нормально на локальном компьютере)? - PullRequest
0 голосов
/ 19 ноября 2011

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

Приведенный ниже код отлично работает в local и вызывает исключение в DevBox , что "ссылка на объект не установлена ​​..." в строке ниже.

UserPrincipal.FindByIdentity (новый PrincipalContext (ContextType.Domain), stringArray [x]). Name;

У кого-нибудь есть какое-нибудь решение?

public static List<SelectListItem> GetUsers()
    {
        try 
        { 
            //Get Users list 
            string usersList = “nraja01,sdaniel01,mmontgo01”;
            char[] charArray = new char[] { ',' };
            string[] stringArray = usersList.Split(charArray);

            List<SelectListItem> users = new List<SelectListItem>();
            var user = new SelectListItem(); 

            //loop through each user
            for (int x = 0; x <= stringArray.GetUpperBound(0); x++)
            {
                user = new SelectListItem();
                user.Value = stringArray[x];
                user.Text = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain), stringArray[x]).Name;
                users.Add(user);
            }
            return users;
        }
        catch (Exception ex)
        {
            _log.Error("Error occured in GetUsers() method: ", ex);
            return null;
        }
    }

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Из-за ошибки в .NET 4.0, вы должны использовать другой конструктор для PrincipalContext при использовании ContextType.Domain .Используйте этот конструктор:

PrincipalContext(ContextType, string)

Например:

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, Environment.UserDomainName)

Подробнее об ошибке см. По этим ссылкам:

http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/4c9fea6c-1d0a-4733-a8ac-e3b78d10e999

http://connect.microsoft.com/VisualStudio/feedback/details/610995/unknown-principaloperationexception-when-add-userprincipal-in-collection-groupprincipal-members

0 голосов
/ 17 января 2012

Мне удалось получить полное имя пользователя, используя это.

System.DirectoryServices.AccountManagement.UserPrincipal.Current.GivenName

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