AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2011, 19:49   #1  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
В контексте страницы вы в стостоянии получить идентификатор, а соответственно домен и логин пользователя, под которым вы зашли на страницу. Далее привожу то, что я нашёл через гугл (и не осуждайте строго - я не разработчик под шарепоинт и мне показалось именно тем, что решит вашу проблему):

http://vspug.com/tanujashares/2007/0...arepoint-2007/
http://www.learningsharepoint.com/20...arepoint-2010/
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 19.12.2011, 19:19   #2  
lvi15 is offline
lvi15
Участник
 
8 / 10 (1) +
Регистрация: 12.11.2009
Добрый вечер! Спасибо за ответы, но они мне не очень помогли. CRM на стороне сервера никак не дает учетку пользователя и соответственно не может уйти в SP. Варианты решений:
1. Написать на стороне SP web-services, к которому crm будет обращаться с фиксированным именем-доменом-паролем и передавать имя пользователя а уже этот сервис пусть пишет этого пользователя в "авторы" записи на SP...
2. Попытаться выполнить код на стороне клиента ??? - то есть получить от сервера CRM данные для записи и из js на стороне клиента обратиться к сервисам SP (здесь то учетка пользователя??)
, - и здесь==>, есть ли возможность подключить к js на стороне клиента внешние библиотеки или запускать программы на стороне клиента - кажется это не совсем просто??? или вообще невозможно???
Старый 19.12.2011, 19:29   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от lvi15 Посмотреть сообщение
CRM на стороне сервера никак не дает учетку пользователя
Можете показать код, который вы используете?

Цитата:
Сообщение от lvi15 Посмотреть сообщение
Написать на стороне SP web-services, к которому crm будет обращаться с фиксированным именем-доменом-паролем и передавать имя пользователя а уже этот сервис пусть пишет этого пользователя в "авторы" записи на SP...
В принципе это же самое и предлагал сделать при помощи имперсонации при вызове вебсервисов SP.

Цитата:
Сообщение от lvi15 Посмотреть сообщение
Попытаться выполнить код на стороне клиента ??? - то есть получить от сервера CRM данные для записи и из js на стороне клиента обратиться к сервисам SP (здесь то учетка пользователя??)
, - и здесь==>, есть ли возможность подключить к js на стороне клиента внешние библиотеки или запускать программы на стороне клиента - кажется это не совсем просто??? или вообще невозможно???
Фантастика. Сомневаюсь, что это вообще как то реализуемо.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 19.12.2011 в 19:31.
Старый 19.12.2011, 21:42   #4  
lvi15 is offline
lvi15
Участник
 
8 / 10 (1) +
Регистрация: 12.11.2009
Спасибо за ответ. Код простой, тестировал сейчас уже в одном домене (и CRM и SP), обращаюсь с пользоваттельского (своего) ПК в CRM (сервер на другом пк) и усе - crm идет в SP с чем угодно, но не с моей учеткой. На обоих серверах в записях AD взведены флажки Cerberos в делегировании. Код выполняется по обращению с asp.net страницы, встроенной в crm в соответствии с правилами sdk:

using System;
using System.Diagnostics;
using System.Globalization;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Diagnostics;
using OrgName.Crm.Base;
using OrgName.Crm.CrmSdk;


using SP = Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client;

namespace OrgName.Crm.Realty.Common
{

public class CrmTemplatePage : CrmPage
{

protected void ConnectSP()
{
string siteUrl = "//http://sps10/DocLib/"; //http://sps10/DocLib/
string nameLibname = "Договоры"; //Договоры

ClientContext clientContext = new ClientContext(siteUrl);
clientContext.Credentials = System.Net.CredentialCache.DefaultCredentials; //???


List list = clientContext.Web.Lists.GetByTitle(nameLibname);
clientContext.Load(list);
//Получить в clientContext библиотеку документов "Договоры"
clientContext.ExecuteQuery(); //<====Здесь идет ошибка

}

}
}

То есть меня очень выручит даже некое вербально-идейное описание возможного решения...

Последний раз редактировалось a33ik; 19.12.2011 в 23:07.
Старый 19.12.2011, 23:10   #5  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Первое - я предлагал аутентифицироваться во время подключения к шарепоинту при помощи креденшиалов вынесенных в какое нибудь хранилище (неважно какое) - где это?

Второе - где попытка получить имя учётной записи пользователя который залогинен в данный момент? Если вы думаете, что DefaultCredentials вас спасут - глубоко ошибаетесь.

Третье - где попытка имперсонироваться под текущим пользователем, а ссылки на имперсонацию я предоставил?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 20.12.2011 в 00:28.
Старый 20.12.2011, 12:17   #6  
lvi15 is offline
lvi15
Участник
 
8 / 10 (1) +
Регистрация: 12.11.2009
Добрый день! Заменил я строку доступа к 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.
Старый 20.12.2011, 12:24   #7  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
clientContext.Credentials = new System.Net.NetworkCredential("user", "passw", "domain");

Это криденшиалы - какого пользователя? Если это криденшиалы пользователя, у которого есть права на вызо шарепоинта, то 401 быть не должно.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:21.