none
Программное обращение к профилю пользователя RRS feed

  • Вопрос

  • Добрый день!

    Не могу сама решить проблему. Хочу посмотреть в профиле отдел пользователя, но через console app вываливается ошибка  на шаге

    UserProfileManager profileManager = new UserProfileManager(servicecontext);

    Object reference not set to an instance of an object.

    вот сам код:

    string strUrl = "http://servername";
                            SPSite siteUP = new SPSite(strUrl);
                                try
                                {
                                    SPServiceContext servicecontext = SPServiceContext.GetContext(siteUP);
                                    UserProfileManager profileManager = new UserProfileManager(servicecontext);
                                    string sAccount = userLogin;
                                    UserProfile u = profileManager.GetUserProfile(sAccount);
                                    string DepartmentName = u["Department"].Value as string;
    
                                }
                                catch (UserNotFoundException exception)
                                {
                                    Console.WriteLine(exception.ToString());
                                }
       

    В инете нашла, что надо правами Full Control обладать, права эти есть у пользователя, под которым запускается выполнение программы. 

    7 августа 2012 г. 9:28

Ответы

  • Я прошу прощения, заработало все. Я не сама себе права на службу профиля давала и как оказалось мне их неправильно дали. Теперь все работает.


    • Помечено в качестве ответа Vanyukova Anna 7 августа 2012 г. 10:03
    7 августа 2012 г. 10:03

Все ответы

  • Вот кусок кода:

    SPUser curentUser = SPContext.Current.Web.CurrentUser;
                        SPQuery userQuery = new SPQuery();
                        userQuery.Query = @"<Where><Eq><FieldRef Name='Title'/>
                        <Value Type='Text'>" + curentUser.Name + "</Value></Eq></Where>";
                        SPListItem userItem = SPContext.Current.Web.SiteUserInfoList.GetItems(userQuery)[0];
    string dep=userItem["Department"].ToString();
    Я делал так.

    7 августа 2012 г. 9:47
  • Алексей, Вы примели пример получения информации о пользователе из UserInfoList. Это не профиль.

    Анна, а служба профилей пользователей на сервере настроена?


    Высказанное мною здесь - мои личные взгляды, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    7 августа 2012 г. 9:55
    Модератор
  • Алексей, Вы примели пример получения информации о пользователе из UserInfoList. Это не профиль.

    Анна, а служба профилей пользователей на сервере настроена?


    Высказанное мною здесь - мои личные взгляды, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    Да, настроена. Я к профилю могу обратиться из другого проекта, именно через console application ошибку выдает
    7 августа 2012 г. 9:58
  • Я прошу прощения, заработало все. Я не сама себе права на службу профиля давала и как оказалось мне их неправильно дали. Теперь все работает.


    • Помечено в качестве ответа Vanyukova Anna 7 августа 2012 г. 10:03
    7 августа 2012 г. 10:03