Я пытаюсь создать фрагмент кода, который будет заполнять объект списка всеми пользователями в службе профилей пользователей SharePoint.
Я добавил ссылки на Microsoft.SharePoint, Microsoft.Office.Server.UserProfiles и получил следующий блок кода:
using Microsoft.SharePoint;
using Microsoft.Office.Server.UserProfiles;
using System.Web;
namespace code.runner.intranet.Dal
{
public class SPUsersDal : BaseDal
{
public List<SPUsersEntity> FetchItems(string siteName)
{
try
{
PostEvent("Attempting to load users from: " + siteName, BaseExceptionEventArgs.ExceptionLevel.Debug);
using (var site = new SPSite(siteName))
{
using (var web = site.OpenWeb())
{
PostEvent("Successfully opened: " + web.Url, BaseExceptionEventArgs.ExceptionLevel.Debug);
var serviceContext = SPServiceContext.GetContext(site);
var userProfileManager = new UserProfileManager(serviceContext);
foreach (UserProfile userProfile in userProfileManager)
{
// ...your code
}
}
Однако следующие строки:
var serviceContext = SPServiceContext.GetContext(site);
var userProfileManager = new UserProfileManager(serviceContext);
Ошибаются, с сообщением:
Тип «HttpContext» определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку System.Web"
Поскольку у меня уже есть ссылка на System.Web, я не уверен, почему я получаю это. Я также не смог заставить работать собственный пример Microsoft (см. здесь: https://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofile.aspx), получая ту же ошибку на тех же объектах.
Что мне не хватает?