|
![]() |
#1 |
Чайный пьяница
|
Первое - я предлагал аутентифицироваться во время подключения к шарепоинту при помощи креденшиалов вынесенных в какое нибудь хранилище (неважно какое) - где это?
Второе - где попытка получить имя учётной записи пользователя который залогинен в данный момент? Если вы думаете, что DefaultCredentials вас спасут - глубоко ошибаетесь. Третье - где попытка имперсонироваться под текущим пользователем, а ссылки на имперсонацию я предоставил?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 20.12.2011 в 00:28. |
|
![]() |
#2 |
Участник
|
Добрый день! Заменил я строку доступа к SP.
А где должна выполняться инперсонализация, здесь же в коде на CRM или надо внедрять код web-сервиса на SP. Вот код с http://vspug.com/tanujashares/2007/0...repoint-2007/: //============================================================================= SPSite site = new SPSite("SiteCollection_Url"); SPWeb web = site.OpenWeb(); SPUser user = web.AllUsers["User_Name"]; SPUserToken token = user.UserToken; SPSite impersonatedSiteCollection = new SPSite("SiteCollection_Url", token); //============================================================================= //====Код на стороне CRM для подключения к web-сервису SP using SP = Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client; namespace OrgName.Crm.Realty.Common { public class CrmTemplatePage : CrmPage { protected void ConnectSP() { string currentUser="User_Name"; //это можно получить из SQL, используя функцию SUSER_SNAME() string currentDomain="Domain"; string siteUrl = "http://sps10/DocLib/"; string nameLib = "Договоры"; ClientContext clientContext = new ClientContext(siteUrl); clientContext.Credentials = new System.Net.NetworkCredential("user", "passw", "domain"); // с этим удается "провалиться" в SP List list = clientContext.Web.Lists.GetByTitle(nameLib); clientContext.Load(list); clientContext.ExecuteQuery(); //<====Здесь идет ошибка 401 }}} Если на стороне CRM - то как "скрещивать" эти два фрагмента кода? Последний раз редактировалось lvi15; 20.12.2011 в 12:19. |
|
![]() |
#3 |
Чайный пьяница
|
clientContext.Credentials = new System.Net.NetworkCredential("user", "passw", "domain");
Это криденшиалы - какого пользователя? Если это криденшиалы пользователя, у которого есть права на вызо шарепоинта, то 401 быть не должно.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#4 |
Участник
|
Это явные криденшипы назначенного заранее пользователя от CRM (беруться из конфига или прописываются напрямую), и у которых есть права на вход в SP. Также я могу взять (и беру чуть выше по тексту прогр) имя и домен текущего пользователя CRM (а пароль текущего пользователя взять неоткуда - заводить специальный скрытый файл для паролей ???) и теперь (я так понял) надо обратиться к SP c этой известной и разрешенной учеткой и далее где-то как-то для clientContext сделать инперсонализацию на текущего пользователя и уже c его именем clientContext.ExecuteQuery обращается к сервисам SP - хотя может я и ошибаюсь по схеме построения программы?? То есть обращение и работа с сервисами SP должна выполняться от текущего пользователя - да похоже что тема инперсонализации - это близко к решению данной задачи, но куда ее "вставлять"???
Последний раз редактировалось lvi15; 20.12.2011 в 13:59. |
|
![]() |
#5 |
Чайный пьяница
|
Цитата:
Цитата:
Цитата:
Сообщение от lvi15
![]() и теперь (я так понял) надо обратиться к SP c этой известной и разрешенной учеткой и далее где-то как-то для clientContext сделать инперсонализацию на текущего пользователя и уже c его именем clientContext.ExecuteQuery обращается к сервисам SP - хотя может я и ошибаюсь по схеме построения программы??
Маленький совет - поменьше эмоций, смайликов и повторяющихся знаков препинания и побольше связности в постах.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|