private static void ConnectOnprem(this ConnectionDetail connectionDetail) { connectionDetail.AuthType = (CrmWebResourcesUpdater.DataModels.AuthenticationProviderType)(int) AuthenticationProviderType.ActiveDirectory; NetworkCredential credential; if (!connectionDetail.IsCustomAuth) { credential = CredentialCache.DefaultNetworkCredentials; } else { var password = CryptoManager.Decrypt(connectionDetail.GetUserPassword(), ConnectionManager.CryptoPassPhrase, ConnectionManager.CryptoSaltValue, ConnectionManager.CryptoHashAlgorythm, ConnectionManager.CryptoPasswordIterations, ConnectionManager.CryptoInitVector, ConnectionManager.CryptoKeySize); credential = new NetworkCredential(connectionDetail.UserName, password, connectionDetail.UserDomain); } crmSvc = new CrmServiceClient(credential, AuthenticationType.AD, connectionDetail.ServerName, connectionDetail.ServerPort.ToString(), connectionDetail.OrganizationUrlName, true, connectionDetail.UseSsl); }
private static void ConnectIfd(this ConnectionDetail connectionDetail) { connectionDetail.AuthType = (CrmWebResourcesUpdater.DataModels.AuthenticationProviderType)(int) AuthenticationProviderType.Federation; if (!connectionDetail.IsCustomAuth) { crmSvc = new CrmServiceClient(CredentialCache.DefaultNetworkCredentials, AuthenticationType.IFD, connectionDetail.ServerName, connectionDetail.ServerPort.ToString(), connectionDetail.OrganizationUrlName, true, connectionDetail.UseSsl); } else { var password = CryptoManager.Decrypt(connectionDetail.GetUserPassword(), ConnectionManager.CryptoPassPhrase, ConnectionManager.CryptoSaltValue, ConnectionManager.CryptoHashAlgorythm, ConnectionManager.CryptoPasswordIterations, ConnectionManager.CryptoInitVector, ConnectionManager.CryptoKeySize); crmSvc = new CrmServiceClient(connectionDetail.UserName, CrmServiceClient.MakeSecureString(password), connectionDetail.UserDomain, connectionDetail.HomeRealmUrl, connectionDetail.ServerName, connectionDetail.ServerPort.ToString(), connectionDetail.OrganizationUrlName, true, connectionDetail.UseSsl); } }
// ReSharper disable once InconsistentNaming private void HydrateSettingsFromUI() { if (ConnectionDetail != null) { Settings.Domain = ConnectionDetail.UserDomain; Settings.Password = ConnectionDetail.GetUserPassword(); Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013; Settings.Url = ConnectionDetail.OrganizationServiceUrl; Settings.UseCrmOnline = ConnectionDetail.UseOnline; Settings.UserName = ConnectionDetail.UserName; } Settings.ActionOutPath = TxtActionPath.Text; Settings.EntityOutPath = TxtEntityPath.Text; Settings.ExtensionConfig.AddDebuggerNonUserCode = ChkAddDebuggerNonUserCode.Checked; Settings.ExtensionConfig.AddNewFilesToProject = ChkAddFilesToProject.Checked; Settings.ExtensionConfig.CreateOneFilePerAction = ChkCreateOneActionFile.Checked; Settings.ExtensionConfig.CreateOneFilePerEntity = ChkCreateOneEntityFile.Checked; Settings.ExtensionConfig.CreateOneFilePerOptionSet = ChkCreateOneOptionSetFile.Checked; Settings.ExtensionConfig.GenerateAttributeNameConsts = ChkGenerateAttributeNameConsts.Checked; Settings.ExtensionConfig.GenerateAnonymousTypeConstructor = ChkGenerateAnonymousTypeConstructor.Checked; Settings.ExtensionConfig.GenerateEnumProperties = ChkGenerateOptionSetEnums.Checked; Settings.ExtensionConfig.InvalidCSharpNamePrefix = TxtInvalidCSharpNamePrefix.Text; Settings.ExtensionConfig.MakeReadonlyFieldsEditable = ChkMakeReadonlyFieldsEditable.Checked; Settings.ExtensionConfig.RemoveRuntimeVersionComment = ChkRemoveRuntimeComment.Checked; Settings.ExtensionConfig.UseXrmClient = ChkUseXrmClient.Checked; Settings.ExtensionConfig.UseTfsToCheckoutFiles = ChkUseTFS.Checked; Settings.IncludeCommandLine = ChkIncludeCommandLine.Checked; Settings.MaskPassword = ChkMaskPassword.Checked; Settings.Namespace = TxtNamespace.Text; Settings.OptionSetOutPath = TxtOptionSetPath.Text; Settings.ServiceContextName = string.IsNullOrWhiteSpace(TxtServiceContextName.Text) ? null : TxtServiceContextName.Text; }
private static void ConnectOnline(this ConnectionDetail connectionDetail) { connectionDetail.AuthType = (CrmWebResourcesUpdater.DataModels.AuthenticationProviderType)(int) AuthenticationProviderType.OnlineFederation; if (string.IsNullOrEmpty(connectionDetail.GetUserPassword())) { throw new Exception("Unable to read user password"); } var password = CryptoManager.Decrypt(connectionDetail.GetUserPassword(), ConnectionManager.CryptoPassPhrase, ConnectionManager.CryptoSaltValue, ConnectionManager.CryptoHashAlgorythm, ConnectionManager.CryptoPasswordIterations, ConnectionManager.CryptoInitVector, ConnectionManager.CryptoKeySize); Utilities.GetOrgnameAndOnlineRegionFromServiceUri(new Uri(connectionDetail.OriginalUrl), out var region, out var orgName, out _); //if (UseMfa) //{ var path = Path.Combine(Path.GetTempPath(), connectionDetail.ConnectionId.Value.ToString("B"), "oauth-cache.txt"); crmSvc = new CrmServiceClient(connectionDetail.UserName, CrmServiceClient.MakeSecureString(password), region, orgName, true, null, null, connectionDetail.AzureAdAppId != Guid.Empty ? connectionDetail.AzureAdAppId.ToString() : "51f81489-12ee-4a9e-aaae-a2591f45987d", new Uri(connectionDetail.ReplyUrl ?? "app://58145B91-0C36-4500-8554-080854F2AC97"), path, null); //} //else //{ // crmSvc = new CrmServiceClient(UserName, CrmServiceClient.MakeSecureString(password), // region, // orgName, // true, // true, // null, // true); //} }
// ReSharper disable once InconsistentNaming private void HydrateSettingsFromUI() { if (ConnectionDetail != null) { TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine); Settings.AuthType = ConnectionDetail.AuthType; Settings.Domain = ConnectionDetail.UserDomain; Settings.Password = ConnectionDetail.GetUserPassword(); Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013; Settings.UseConnectionString = Settings.UseConnectionString || Settings.AuthType == AuthenticationProviderType.ActiveDirectory; Settings.UseCrmOnline = ConnectionDetail.UseOnline; Settings.UserName = ConnectionDetail.UserName; Settings.Url = Settings.UseConnectionString ? ConnectionDetail.OrganizationServiceUrl.Replace(@"/XRMServices/2011/Organization.svc", string.Empty) : ConnectionDetail.OrganizationServiceUrl; } Settings.ActionOutPath = TxtActionPath.Text; Settings.EntityOutPath = TxtEntityPath.Text; if (ChkUseDeprecatedOptionSetNaming.Checked) { Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions"); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty); } else { var defaultConfig = Config.GetDefault(); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value); } var extensions = Settings.ExtensionConfig; extensions.AddDebuggerNonUserCode = ChkAddDebuggerNonUserCode.Checked; extensions.AddNewFilesToProject = ChkAddFilesToProject.Checked; extensions.CreateOneFilePerAction = ChkCreateOneActionFile.Checked; extensions.CreateOneFilePerEntity = ChkCreateOneEntityFile.Checked; extensions.CreateOneFilePerOptionSet = ChkCreateOneOptionSetFile.Checked; extensions.GenerateAttributeNameConsts = ChkGenerateAttributeNameConsts.Checked; extensions.GenerateAnonymousTypeConstructor = ChkGenerateAnonymousTypeConstructor.Checked; extensions.GenerateEntityRelationships = ChkGenerateEntityRelationships.Checked; extensions.GenerateEnumProperties = ChkGenerateOptionSetEnums.Checked; extensions.InvalidCSharpNamePrefix = TxtInvalidCSharpNamePrefix.Text; extensions.MakeReadonlyFieldsEditable = ChkMakeReadonlyFieldsEditable.Checked; extensions.LocalOptionSetFormat = TxtOptionSetFormat.Text; extensions.RemoveRuntimeVersionComment = ChkRemoveRuntimeComment.Checked; extensions.UseXrmClient = ChkUseXrmClient.Checked; extensions.UseDeprecatedOptionSetNaming = ChkUseDeprecatedOptionSetNaming.Checked; extensions.UseTfsToCheckoutFiles = ChkUseTFS.Checked; Settings.AudibleCompletionNotification = ChkAudibleCompletion.Checked; Settings.IncludeCommandLine = ChkIncludeCommandLine.Checked; Settings.MaskPassword = ChkMaskPassword.Checked; Settings.Namespace = TxtNamespace.Text; Settings.OptionSetOutPath = TxtOptionSetPath.Text; Settings.ServiceContextName = string.IsNullOrWhiteSpace(TxtServiceContextName.Text) ? null : TxtServiceContextName.Text; }
// ReSharper disable once InconsistentNaming private void HydrateSettingsFromUI() { if (ConnectionDetail != null) { TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine); Settings.Domain = GetUserDomain(); Settings.Password = ConnectionDetail.GetUserPassword(); Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013; Settings.UseCrmOnline = ConnectionDetail.UseOnline; Settings.UserName = ConnectionDetail.UserName; Settings.Url = ConnectionDetail.GetUrlString(); if (Settings.UseConnectionString && string.IsNullOrWhiteSpace(Settings.Password) && ConnectionDetail.NewAuthType != AuthenticationType.Certificate && ConnectionDetail.NewAuthType != AuthenticationType.ClientSecret && ConnectionDetail.NewAuthType != AuthenticationType.OAuth) { // Fix for https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/issues/43 // Difficulties with Early Bound Generator #43 var askForPassword = new PasswordDialog(this); Settings.Password = askForPassword.ShowDialog(this) == DialogResult.OK ? askForPassword.Password : "******"; } if (ConnectionDetail.AuthType == AuthenticationProviderType.ActiveDirectory && string.IsNullOrWhiteSpace(Settings.UserName)) { Settings.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; } if (string.IsNullOrWhiteSpace(Settings.ConnectionString)) { // Load any non-username/password situations via connection string #268 Settings.ConnectionString = ConnectionDetail.GetNonUserConnectionString(); if (!string.IsNullOrWhiteSpace(Settings.ConnectionString)) { Settings.UseConnectionString = true; } } } SettingsMap.PushChanges(); Settings.RootPath = Path.GetDirectoryName(Path.GetFullPath(TxtSettingsPath.Text)); if (SettingsMap.UseDeprecatedOptionSetNaming) { Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions"); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty); } else { var defaultConfig = EarlyBoundGeneratorConfig.GetDefault(); defaultConfig.CrmSvcUtilRelativeRootPath = Paths.PluginsPath; Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value); } }
// ReSharper disable once InconsistentNaming private void HydrateSettingsFromUI() { if (ConnectionDetail != null) { TxtOutput.AppendText("CRM Authentication Type Detected: " + ConnectionDetail.AuthType + Environment.NewLine); Settings.AuthType = ConnectionDetail.AuthType; Settings.Domain = GetUserDomain(); Settings.Password = ConnectionDetail.GetUserPassword(); Settings.SupportsActions = ConnectionDetail.OrganizationMajorVersion >= Crm2013; Settings.UseConnectionString = Settings.UseConnectionString; // #151 || Settings.AuthType == AuthenticationProviderType.ActiveDirectory; Settings.UseCrmOnline = ConnectionDetail.UseOnline; Settings.UserName = ConnectionDetail.UserName; Settings.Url = GetUrlString(); if (Settings.UseConnectionString && string.IsNullOrWhiteSpace(Settings.Password)) { // Fix for https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/issues/43 // Difficulties with Early Bound Generator #43 var askForPassowrd = new PasswordDialog(this); Settings.Password = askForPassowrd.ShowDialog(this) == DialogResult.OK ? askForPassowrd.Password : "******"; } if (ConnectionDetail.AuthType == AuthenticationProviderType.ActiveDirectory && string.IsNullOrWhiteSpace(Settings.UserName)) { Settings.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; } } Settings.ActionOutPath = TxtActionPath.Text; Settings.EntityOutPath = TxtEntityPath.Text; Settings.RootPath = Path.GetDirectoryName(Path.GetFullPath(TxtSettingsPath.Text)); if (ChkUseDeprecatedOptionSetNaming.Checked) { Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, @"DLaB.CrmSvcUtilExtensions.OptionSet.CodeWriterFilterService,DLaB.CrmSvcUtilExtensions"); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, string.Empty); } else { var defaultConfig = EarlyBoundGeneratorConfig.GetDefault(); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.CodeWriterFilter).Value); Settings.SetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService, defaultConfig.GetExtensionArgument(CreationType.OptionSets, CrmSrvUtilService.NamingService).Value); } var validLanguageCode = int.TryParse(TxtLanguageCodeOverride.Text, out var languageCode); var extensions = Settings.ExtensionConfig; extensions.AddDebuggerNonUserCode = ChkAddDebuggerNonUserCode.Checked; extensions.AddNewFilesToProject = ChkAddFilesToProject.Checked; extensions.CreateOneFilePerAction = ChkCreateOneActionFile.Checked; extensions.CreateOneFilePerEntity = ChkCreateOneEntityFile.Checked; extensions.CreateOneFilePerOptionSet = ChkCreateOneOptionSetFile.Checked; extensions.GenerateActionAttributeNameConsts = ChkGenerateActionAttributeNameConsts.Checked; extensions.GenerateAttributeNameConsts = ChkGenerateAttributeNameConsts.Checked; extensions.GenerateAnonymousTypeConstructor = ChkGenerateAnonymousTypeConstructor.Checked; extensions.GenerateEntityRelationships = ChkGenerateEntityRelationships.Checked; extensions.GenerateEnumProperties = ChkGenerateOptionSetEnums.Checked; extensions.InvalidCSharpNamePrefix = TxtInvalidCSharpNamePrefix.Text; extensions.MakeReadonlyFieldsEditable = ChkMakeReadonlyFieldsEditable.Checked; extensions.MakeResponseActionsEditable = ChkEditableResponseActions.Checked; extensions.LocalOptionSetFormat = TxtOptionSetFormat.Text; extensions.OptionSetLanguageCodeOverride = validLanguageCode ? languageCode : (int?)null; extensions.RemoveRuntimeVersionComment = ChkRemoveRuntimeComment.Checked; extensions.UseXrmClient = ChkUseXrmClient.Checked; extensions.UseDeprecatedOptionSetNaming = ChkUseDeprecatedOptionSetNaming.Checked; extensions.UseTfsToCheckoutFiles = ChkUseTFS.Checked; Settings.AudibleCompletionNotification = ChkAudibleCompletion.Checked; Settings.IncludeCommandLine = ChkIncludeCommandLine.Checked; Settings.MaskPassword = ChkMaskPassword.Checked; Settings.Namespace = TxtNamespace.Text; Settings.OptionSetOutPath = TxtOptionSetPath.Text; Settings.ServiceContextName = string.IsNullOrWhiteSpace(TxtServiceContextName.Text) ? null : TxtServiceContextName.Text; }