Получение случайного пользователя с помощью UserProfileManager - PullRequest
4 голосов
/ 02 сентября 2010

Я пытаюсь создать веб-часть "Кто есть" для проекта SharePoint 2010, над которым я работаю.

Эта веб-часть должна выбирать случайного пользователя из профилей SharePoint и отображать его /ее имя, отдел и телефон.

Проблема в том, что я не смог найти способ получить случайного пользователя непосредственно из профилей пользователей, что я и хотел бы сделать.

Я нашел способ сделать это:

SPServiceContext myContext = SPServiceContext.GetContext(mySite);
SPWeb myWeb = SPContext.Current.Web;
UserProfileManager profileManager = new UserProfileManager(myContext);

bool boolOut;
SPPrincipalInfo[] userInfos = SPUtility.GetPrincipalsInGroup(myWeb, "AllUsers", profileManager.Count, out boolOut);

Random random = new Random();
int randomUser = random.Next(0, userInfos.Length);
SPPrincipalInfo user = userInfos[randomUser];
bool userFound = false;
while(!userFound)
{
    if (profileManager.UserExists(user.LoginName))
    {
        UserProfile userProfile = profileManager.GetUserProfile(user.LoginName);
        userDepartment = Convert.ToString(userProfile[PropertyConstants.Department].Value);
        userPicture = Convert.ToString(UserProfile[PropertyConstants.PictureUrl].Value);
        userFound = true;
    }
}

Таким образом, я сделал это, это могло быть проблемой, потому что на сайте было бы 2k + пользователей, поэтому я хотел бы знать, возможно ли сделать это напрямуюиз профилей пользователей.

Я новичок в SharePoint, и это меня немного смущает.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 02 сентября 2010

Мне любопытно, зачем ему быть «случайным» пользователем.Я бы предложил использовать функциональные возможности OOB для предполагаемых коллег, и ваша веб-часть могла бы вместо этого предоставить эту информацию.

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