So, after much surfing and experimenting, here is the final code snip for the CRM ‘leads’ table insert. This basic method should work with any of the tables and since I googled forums and blogs for about three days trying to get it to work, I’ll post up my final effort. Note this is for a very simple ‘get more information’ page with a “contact info form” and a ‘submit’ button.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk.Client;
using System.Net;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// This executes on the load of the page
}
protected void Button1_Click(object sender, EventArgs e)
{
ClientCredentials Credentials = new ClientCredentials();
Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
//This URL needs to be updated to match the servername and Organization for the environment.
Uri OrganizationUri = new Uri("http://skydom06:5555/XrmServices/2011/Organization.svc");
Uri HomeRealmUri = null;
//OrganizationServiceProxy serviceProxy;
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
string strUserName = string.Empty;
string strUserPassword = string.Empty;
string strUserOrganization = string.Empty;
string strUserHost = string.Empty;
string strUserPort = string.Empty;
string strUserDomain = string.Empty;
strUserName = "!user!";
strUserPassword = "!password!";
strUserDomain = "!domain!";
strUserOrganization = "!organization!";
try
{
// Set up the CRM service
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = 0;
token.OrganizationName = strUserOrganization;
// get Authorization using above info
CrmService AuthService = new CrmService();
AuthService.Url = "http://skydom06:5555/mscrmservices/2007/crmservice.asmx";
AuthService.CrmAuthenticationTokenValue = token;
AuthService.Credentials = new System.Net.NetworkCredential(strUserName, strUserPassword, strUserDomain);
DynamicEntity NewLead = new DynamicEntity(EntityName.lead.ToString());
NewLead.Properties.Add(new StringProperty("firstname", txtFirstName.Text.ToString()));
NewLead.Properties.Add(new StringProperty("lastname", txtLastName.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_line1", txtStreet1.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_line2", txtStreet2.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_city", txtCity.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_stateorprovince", txtState.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_postalcode", txtZip.Text.ToString()));
NewLead.Properties.Add(new StringProperty("address1_country", txtCountry.Text.ToString()));
NewLead.Properties.Add(new StringProperty("telephone2", txtPhoneNumber.Text.ToString()));
NewLead.Properties.Add(new StringProperty("mobilephone", txtCellPhone.Text.ToString()));
NewLead.Properties.Add(new StringProperty("ses_yeargraduated", txtGradYear.Text.ToString()));
//NewLead.Properties.Add(new StringProperty("subject", txtProgram.Text.ToString()));
NewLead.Properties.Add(new StringProperty("subject", "Prospective Student"));
NewLead.Properties.Add(new StringProperty("emailaddress1", txtEmailAddress.Text.ToString()));
AuthService.Create(NewLead);
}
catch (System.ServiceModel.Security.SecurityAccessDeniedException ex)
{
throw new Exception("An error occurred while attempting to authenticate.", ex);
}
Response.Redirect("thanks.htm");
}
}
}