private RetrieveCrmTicketResponse GetAdTicket() { var crmDiscoveryService = new CrmDiscoveryService(); crmDiscoveryService.Url = this.Settings.Url.ToLower().Replace("crmservice.asmx", "AD/crmdiscoveryservice.asmx"); crmDiscoveryService.Credentials = CrmHelper.CreateNetworkCredential(this.Settings.User, this.Settings.Password); var crmTicketRequest = new RetrieveCrmTicketRequest(); crmTicketRequest.OrganizationName = this.Settings.Organization; return((RetrieveCrmTicketResponse)crmDiscoveryService.Execute(crmTicketRequest)); }
/// <summary> /// Creates CRM metadata service. /// </summary> /// <param name="settings">The configuration settings</param> /// <returns>The CRM metadata service.</returns> public IMetadataServiceV4 CreateMetadataService(ConfigurationSettings settings) { Assert.ArgumentNotNull(settings, "settings"); const string CreateMetadataServiceKey = "createMetadataService"; ConditionalLog.Info("CreateMetadataService(settings). Started.", this, TimerAction.Start, CreateMetadataServiceKey); ManagedTokenMetadataService wrapper = null; try { var metadataService = new MetadataService(); metadataService.Url = settings.Url.Replace("crmservice.asmx", "metadataservice.asmx"); metadataService.Timeout = 360 * 1000; metadataService.Credentials = CrmHelper.CreateNetworkCredential(settings.User, settings.Password); metadataService.UnsafeAuthenticatedConnectionSharing = settings.UnsafeAuthenticatedConnectionSharing; metadataService.PreAuthenticate = settings.PreAuthenticate; metadataService.ConnectionGroupName = CrmHelper.GetConnectionGroupName((NetworkCredential)metadataService.Credentials); metadataService.CrmAuthenticationTokenValue = new crm4.metadataservice.CrmAuthenticationToken { AuthenticationType = (int)settings.AuthenticationType, OrganizationName = settings.Organization }; wrapper = new ManagedTokenMetadataService(metadataService, settings); wrapper.Execute(new RetrieveTimestampRequest()); ConditionalLog.Info("CreateMetadataService(settings). CRM metadata service has been created.", this, TimerAction.Tick, CreateMetadataServiceKey); } catch (Exception e) { ConditionalLog.Error("Couldn't create CRM metadata service.", e, this); return(null); } finally { ConditionalLog.Info("CreateMetadataService(settings). Finished.", this, TimerAction.Stop, CreateMetadataServiceKey); } return(wrapper); }
/// <summary> /// Creates CRM metadata service. /// </summary> /// <param name="settings">The configuration settings</param> /// <returns>The CRM metadata service.</returns> public IMetadataServiceV3 CreateMetadataService(ConfigurationSettings settings) { Assert.ArgumentNotNull(settings, "settings"); const string CreateMetadataServiceKey = "createMetadataService"; ConditionalLog.Info("CreateMetadataService(settings). Started.", this, TimerAction.Start, CreateMetadataServiceKey); MetadataService metadataService = null; try { metadataService = new MetadataService(); metadataService.Url = settings.Url.Replace("crmservice.asmx", "metadataservice.asmx"); metadataService.Timeout = 360 * 1000; metadataService.Credentials = CrmHelper.CreateNetworkCredential(settings.User, settings.Password); metadataService.UnsafeAuthenticatedConnectionSharing = settings.UnsafeAuthenticatedConnectionSharing; metadataService.PreAuthenticate = settings.PreAuthenticate; metadataService.ConnectionGroupName = CrmHelper.GetConnectionGroupName((NetworkCredential)metadataService.Credentials); metadataService.GetTimestamp(); ConditionalLog.Info("CreateMetadataService(settings). CRM metadata service has been created.", this, TimerAction.Tick, CreateMetadataServiceKey); } catch (Exception e) { ConditionalLog.Error("Couldn't create CRM metadata service.", e, this); return(null); } finally { ConditionalLog.Info("CreateMetadataService(settings). Finished.", this, TimerAction.Stop, CreateMetadataServiceKey); } return(metadataService); }
/// <summary> /// Creates CRM service. /// </summary> /// <param name="settings">The configuration settings</param> /// <returns>The CRM service.</returns> public ICrmServiceV3 CreateService(ConfigurationSettings settings) { Assert.ArgumentNotNull(settings, "settings"); const string CreateServiceKey = "createService"; ConditionalLog.Info("CreateService(settings). Started.", this, TimerAction.Start, CreateServiceKey); CrmService crmService = null; try { crmService = new CrmService(); crmService.Url = settings.Url; crmService.Timeout = 360 * 1000; crmService.Credentials = CrmHelper.CreateNetworkCredential(settings.User, settings.Password); crmService.UnsafeAuthenticatedConnectionSharing = settings.UnsafeAuthenticatedConnectionSharing; crmService.PreAuthenticate = settings.PreAuthenticate; crmService.ConnectionGroupName = CrmHelper.GetConnectionGroupName((NetworkCredential)crmService.Credentials); crmService.Execute(new WhoAmIRequest()); ConditionalLog.Info("CreateService(settings). CRM service has been created.", this, TimerAction.Tick, CreateServiceKey); } catch (Exception e) { ConditionalLog.Error("Couldn't create CRM service.", e, this); return(null); } finally { ConditionalLog.Info("CreateService(settings). Finished.", this, TimerAction.Stop, CreateServiceKey); } return(crmService); }
/// <summary> /// Creates CRM organization service. /// </summary> /// <param name="settings">The configuration settings</param> /// <returns>The CRM organization service.</returns> public IOrganizationService CreateOrganizationService(ConfigurationSettings settings) { Assert.ArgumentNotNull(settings, "settings"); const string CreateOrganizationServiceKey = "createOrganizationService"; ConditionalLog.Info("CreateOrganizationService(settings). Started.", this, TimerAction.Start, CreateOrganizationServiceKey); IOrganizationService organizationService = null; try { var serviceManagement = ServiceConfigurationFactory.CreateManagement <IOrganizationService>(new Uri(settings.Url)); var authenticationCredentials = new AuthenticationCredentials(); switch (serviceManagement.AuthenticationType) { case AuthenticationProviderType.ActiveDirectory: authenticationCredentials.ClientCredentials.Windows.ClientCredential = CrmHelper.CreateNetworkCredential(settings.User, settings.Password); organizationService = new OrganizationServiceProxy(serviceManagement, authenticationCredentials.ClientCredentials); break; case AuthenticationProviderType.LiveId: case AuthenticationProviderType.Federation: case AuthenticationProviderType.OnlineFederation: authenticationCredentials.ClientCredentials.UserName.UserName = settings.User; authenticationCredentials.ClientCredentials.UserName.Password = settings.Password; var tokenCredentials = serviceManagement.Authenticate(authenticationCredentials); organizationService = new ManagedTokenOrganizationServiceProxy(tokenCredentials.SecurityTokenResponse, serviceManagement, authenticationCredentials.ClientCredentials); break; } organizationService.Execute(new WhoAmIRequest()); ConditionalLog.Info("CreateOrganizationService(settings). CRM organization service has been created.", this, TimerAction.Tick, CreateOrganizationServiceKey); } catch (Exception e) { ConditionalLog.Error("Couldn't create CRM organization service.", e, this); return(null); } finally { ConditionalLog.Info("CreateOrganizationService(settings). Finished.", this, TimerAction.Stop, CreateOrganizationServiceKey); } return(organizationService); }
public IOrganizationService CreateOrganizationService(ConfigurationSettings settings) { Assert.ArgumentNotNull(settings, "settings"); ConditionalLog.Info("CreateOrganizationService(settings). Started.", this, TimerAction.Start, "createOrganizationService"); IOrganizationService service = null; try { IServiceManagement <IOrganizationService> serviceManagement = ServiceConfigurationFactory.CreateManagement <IOrganizationService>(new Uri(settings.Url)); AuthenticationCredentials authenticationCredentials = new AuthenticationCredentials(); switch (serviceManagement.AuthenticationType) { case AuthenticationProviderType.ActiveDirectory: authenticationCredentials.ClientCredentials.Windows.ClientCredential = CrmHelper.CreateNetworkCredential(settings.User, settings.Password); service = new OrganizationServiceProxy(serviceManagement, authenticationCredentials.ClientCredentials); break; case AuthenticationProviderType.Federation: case AuthenticationProviderType.LiveId: case AuthenticationProviderType.OnlineFederation: { authenticationCredentials.ClientCredentials.UserName.UserName = settings.User; authenticationCredentials.ClientCredentials.UserName.Password = settings.Password; AuthenticationCredentials credentials2 = serviceManagement.Authenticate(authenticationCredentials); //setting to be able to configure using the custom token service proxy if ( SitecoreUtility.GetSitecoreSetting <bool>( "AlphaSolutions.ExtendedCRMProvider.V5.Disable.AuthenticationCustomization", false)) { service = new CRMSecurityProvider.Repository.V5.ManagedTokenOrganizationServiceProxy(serviceManagement, credentials2.SecurityTokenResponse); } else { service = new ManagedTokenOrganizationServiceProxy(serviceManagement, credentials2.SecurityTokenResponse, authenticationCredentials); } break; } } if (service == null) { ConditionalLog.Error("CreateOrganizationService(settings). service could not be initialized.", this); return(null); } service.Execute(new WhoAmIRequest()); ConditionalLog.Info("CreateOrganizationService(settings). CRM organization service has been created.", this, TimerAction.Tick, "createOrganizationService"); } catch (Exception exception) { ConditionalLog.Error("Couldn't create CRM organization service.", exception, this); return(null); } finally { ConditionalLog.Info("CreateOrganizationService(settings). Finished.", this, TimerAction.Stop, "createOrganizationService"); } return(service); }