Профиль пользователя SharePoint из имени участника-пользователя в среде утверждений

У меня есть учетная запись, которая сохраняется в базе данных с использованием формата основного имени пользователя (UPN): [email protected]

Я работаю в среде SharePoint, которая проверяет подлинность утверждений с использованием формата UPN.

Моя проблема в том, что мне нужно получить объект UserProfile для постоянной учетной записи UPN. Я пробовал следующее, но это не работает:

string upnAccount = "[email protected]";
SPServiceContext ctx = SPServiceContext.GetContext(SPContext.Current.Site);
UserProfileManager upm = new UserProfileManager(ctx);
UserProfile user = upm.GetUserProfile(upnAccount);

Я продолжаю получать: Microsoft.Office.Server.UserProfiles.UserNotFoundException: произошла ошибка при получении профиля пользователя.

Означает ли это, что мне нужно преобразовать учетную запись UPN в заявку, и если да, есть ли у кого-нибудь пример того, как это сделать?


person Community    schedule 15.02.2012    source источник


Ответы (2)


            UserProfileManager UPM = null;

            using (SPSite site = new SPSite(SPContext.Current.Web.Url))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    ServerContext serverContext = ServerContext.GetContext(site);
                    UPM = new UserProfileManager(serverContext);
                     foreach (UserProfile profile in UPM)
                    {

                        an = profile["AccountName"].Value;
                        title = profile["Title"].Value;
                    }
                }
            }

Вы можете попробовать это для получения профиля пользователя All. В цикле foreach вы можете проверить свои поля и получить подробную информацию о пользователе.

person V_B    schedule 16.02.2012

В некоторых случаях на сайтах SharePoint с федеративной проверкой подлинности профили пользователей не создаются автоматически, пока вы не настроите синхронизацию. Для этой проблемы вы можете проверить, существует ли уже профиль пользователя для [email protected] через Central Admin.

Также ваш код должен запускаться под олицетворением, проверьте журнал на предмет исключения и попробуйте использовать SPSecurity.RunWithElevatedPrivileges.

person Oleg Savelyev    schedule 16.02.2012