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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2009, 00:33   #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
Цитата:
Сообщение от Kipetcoff Посмотреть сообщение
Почему-то не работает код crmService.Credentials = System.Net.CredentialCache.DefaultCredentials; Хотя в моем приложениие есть

<authentication mode="Windows"/>
<identity impersonate="true"/>
Что такое происходит?
<authentication mode="Windows"/> это уберите.
Плюс всю работу с CrmService оберните конструкцией using (new CrmImpersonator()){...}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 03.06.2009, 10:44   #2  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Спасибо, помогло!!!
Старый 08.06.2009, 11:21   #3  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
К сожалению все таки не работает DefaultCredentials. Я что-то упустил и подумал что настройки конфига сработали. На самом деле как работало через crmService.Credentials = new System.Net.NetworkCredential("administrator", "pass@word1"); так и работает. Есть какой-нить другой способ передать информацию о пользователе св-ву crmService.Credentials? Почему у всех людей работает а у меня нет? Конфиг приложил......

Код сохранения
Код:
protected void btnSave_Click(object sender, Coolite.Ext.Web.AjaxEventArgs e)
	{
		if (ValidateActivityDate())
		{
		using (new CrmImpersonator())
		{
			string sOrgname = string.Empty;
			sOrgname = Request.Params["orgname"];
			CrmAuthenticationToken token = new CrmAuthenticationToken();
			token.OrganizationName = sOrgname;
			token.AuthenticationType = 0;

			//Create the Service 
			CrmService crmService = new CrmService();
			crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;			


			//crmService.Credentials = new System.Net.NetworkCredential("administrator", "pass@word1");
			//crmService.Credentials = WindowsIdentity.GetCurrent();
			crmService.PreAuthenticate = false;
			crmService.CrmAuthenticationTokenValue = token;
			crmService.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) + "/2007/crmservice.asmx";

			//
			string sType = string.Empty;
			string sLeadId = string.Empty;
			if (Request.Params["typename"] != null && Request.Params["id"] != null)
			{
				sType = Request.Params["typename"];
				sLeadId = Request.Params["id"];

				Microsoft.Crm.Sdk.Query.ColumnSet cols = new Microsoft.Crm.Sdk.Query.ColumnSet();
				cols.Attributes.Add("subject");
				Guid gLeadId = new Guid(sLeadId);

				lead oLead = (lead)crmService.Retrieve(sType, gLeadId, cols);

				//
				Guid userid = new Guid();
				WhoAmIRequest userRequest = new WhoAmIRequest();
				WhoAmIResponse currentUser = (WhoAmIResponse)crmService.Execute(userRequest);

				userid = currentUser.UserId;

				task task = new task();

				// Set the task subject.
				task.subject = txtNotes.Text;

				task.scheduledstart = new CrmDateTime();
				task.scheduledstart.Value = txtActivity.SelectedDate.ToString("s");

				task.actualdurationminutes = new CrmNumber();
				task.actualdurationminutes.Value = Convert.ToInt32(ddDuration.SelectedItem.Value);				

				//Set the regardingobject
				task.regardingobjectid = new Lookup();
				task.regardingobjectid.Value = oLead.leadid.Value;
				task.regardingobjectid.type = EntityName.lead.ToString();

				//Set the user
				task.ownerid = new Owner();
				task.ownerid.Value = userid;
				task.ownerid.type = EntityName.systemuser.ToString();

				//set created by
				task.createdby = new Lookup();
				task.createdby.Value = userid;
				task.createdby.type = EntityName.systemuser.ToString();


				Guid gTSKId = new Guid();
				try
				{
					gTSKId = crmService.Create(task);
					lblError.Text = string.Empty;
					lblInfo.Text = "\"" + task.subject + "\" Task Added.";
				}
				catch (System.Web.Services.Protocols.SoapException ex)
				{
					lblInfo.Text = string.Empty;
					lblError.Text += ex.Detail.InnerText + userid.ToString() + " " + sOrgname;					
				}
			}
		}
		}
	}
Вложения
Тип файла: txt Web.config.txt (6.5 Кб, 296 просмотров)

Последний раз редактировалось Kipetcoff; 08.06.2009 в 12:34.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Новый пользователь из другого домена if_maks Dynamics CRM: Администрирование 27 11.11.2009 14:54
Как лучше реализовать? Создать новый объект или... Sederick Dynamics CRM: Функционал 12 08.04.2009 14:04
Plugin на для обновления задачи (Task) Bondonello Dynamics CRM: Разработка 14 25.02.2009 12:13
связь через новый объект valk Dynamics CRM: Разработка 3 07.12.2007 08:56
связь через новый объект valk Dynamics CRM: Разработка 0 06.12.2007 12:09
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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