Учетные данные веб-службы SharePoint - PullRequest
0 голосов
/ 24 марта 2009

Я пытаюсь использовать стандартный веб-сервис SharePoint GetWeb в коде формы InfoPath. Форма размещается как часть рабочего процесса, поэтому загружается в браузер с помощью служб форм. Поэтому он работает с учетными данными текущего пользователя, вошедшего в систему SharePoint. Веб-служба запускается, если пользователь входит в группу владельцев сайта, но выдает ошибку «HTTP 401 Unauthorized», если пользователь входит в группы Contributer или Reader. Я также использую веб-сервис GetLists сразу после этого, но он работает при условии, что у пользователя есть права на чтение.

Я использую вызов GetWeb только для того, чтобы получить WebId, который требуется для вызова GetList в качестве параметра. Я обошел проблему с разрешениями, передав WebId в форму, вместо того, чтобы форма искала его. Так что теперь все в порядке.

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

[ПРИМЕЧАНИЕ] Я не использую файлы подключения к данным по какой-то причине, но в любом случае спасибо за их предложение.

Ответы [ 2 ]

2 голосов
/ 24 марта 2009

Устранить необходимость жесткого кодирования учетных данных веб-службы можно, управляя сведениями о веб-службе в библиотеках подключения к данным. Файл UDCX содержит схему для хранения учетных данных веб-службы, а самим файлом можно централизованно управлять из Central Admin.

Использование файлов подключения к данным в центральном администраторе: http://aidangarnish.net/blog/post/2008/11/Using-centrally-managed-SharePoint-data-connection-files-with-InfoPath-2007.aspx

учетные данные веб-службы в (7): http://sheetal -d.spaces.live.com / Блог / СНН! 237C3DEA7120098B! 658.entry

0 голосов
/ 21 сентября 2015

Если вы используете клиент sharepoint для GetList. Тогда вы можете посмотреть ниже код.

ClientContext context = new ClientContext(siteURL);
UserInfo user = new UserInfo();
SecureString passWord = new SecureString();
foreach (char c in user.Pwd.ToCharArray()) passWord.AppendChar(c);
context.Credentials = new SharePointOnlineCredentials(user.UserName, passWord);
//context.Credentials = new System.Net.NetworkCredential(userName, password);
Web web = context.Web;
List list = web.Lists.GetByTitle(documentLibraryName);

CamlQuery query = new CamlQuery();
ListItemCollection items = list.GetItems(query);
context.Load(items);
context.ExecuteQuery();
...