/// <summary> /// Determines whether or not an affiliate application exists. /// </summary> /// <param name="application">The name of the affiliate application to check for existence.</param> public bool Exists(string application) { bool exists = false; string description = ""; string contact = ""; string userGroup = ""; string adminGroup = ""; int flags = 0; int fields = 0; try { ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(application, out description, out contact, out userGroup, out adminGroup, out flags, out fields); exists = true; } catch (Exception e) { if (e.Message.Contains("The application does not exist.")) { exists = false; } else { throw new Exception("Failed to load information for affiliate application " + application + ". " + e.Message); } } return(exists); }
/// <summary> /// execute task /// </summary> /// <returns></returns> public override bool Execute() { var admin = new ISSOAdmin(); admin.DeleteApplication(ApplicationName); return(true); }
/// <summary> /// Enables tickets /// </summary> /// <returns>True if successful, otherwise false</returns> public static bool EnableTickets() { try { ISSOAdmin admin = new ISSOAdmin(); int flags = 0; int appDeleteMax = -1; int mappingDeleteMax = -1; int ntpLookupMax = -1; int xplLookupMax = -1; int ticketTimeout = -1; int cacheTimeout = -1; string secretServer = null; string ssoAdminGroup = null; string affiliateAppMgrGroup = null; // Get current default settings admin.GetGlobalInfo(out flags, out appDeleteMax, out mappingDeleteMax, out ntpLookupMax, out xplLookupMax, out ticketTimeout, out cacheTimeout, out secretServer, out ssoAdminGroup, out affiliateAppMgrGroup); // Update global settings admin.UpdateGlobalInfo(SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS, SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS, ref appDeleteMax, ref mappingDeleteMax, ref ntpLookupMax, ref xplLookupMax, ref ticketTimeout, ref cacheTimeout, null, null, null); } catch { return(false); } return(true); }
/// <summary> /// Creates a new SSO ConfigStore application. /// </summary> /// <param name="appName"></param> /// <param name="description"></param> /// <param name="uAccountName"></param> /// <param name="adminAccountName"></param> /// <param name="propertiesBag"></param> /// <param name="maskArray"></param> public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SsoPropBag propertiesBag, ArrayList maskArray) { int appFlags = 0; //bitwise operation for flags appFlags |= SSOFlag.SSO_FLAG_APP_CONFIG_STORE; appFlags |= SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL; appFlags |= SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL; ISSOAdmin ssoAdmin = new ISSOAdmin(); //create app ssoAdmin.CreateApplication(appName, description, "", uAccountName, adminAccountName, appFlags, propertiesBag.PropertyCount); //create property fields int counter = 0; //create dummy field in first slot ssoAdmin.CreateFieldInfo(appName, "dummy", 0); //create real fields foreach (DictionaryEntry de in propertiesBag.Properties) { string propName = de.Key.ToString(); int fieldFlags = 0; fieldFlags |= Convert.ToInt32(maskArray[counter]); //create property ssoAdmin.CreateFieldInfo(appName, propName, fieldFlags); counter++; } //enable application ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); }
/// <summary> /// Adds SSO application /// </summary> /// <param name="name">Application name</param> /// <param name="admins">Application admin group</param> /// <param name="users">Application users group</param> /// <returns>True if successful, otherwise false</returns> public static bool AddApplication(string name, string admins, string users) { try { ISSOAdmin admin = new ISSOAdmin(); // Create application admin.CreateApplication(name, "SSO Sample Application", "*****@*****.**", users, admins, SSOFlag.SSO_WINDOWS_TO_EXTERNAL | SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS, 2); // Add fields admin.CreateFieldInfo(name, "User Id", SSOFlag.SSO_FLAG_NONE); admin.CreateFieldInfo(name, "Password", SSOFlag.SSO_FLAG_FIELD_INFO_MASK); // Enable application admin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); } catch { return(false); } return(true); }
/// <summary> /// Imports the specified SSO config file to BizTalk SSODB. /// </summary> /// <param name="ssoKey">Key to import SSO file.</param> /// <param name="ssoEncryptedFile">Full path of the SSO config file, from where to import.</param> /// <param name="ssoConfigappName">Application name under which the SSO will be imported.</param> /// <param name="SSOConfigContactInfo">SSOConfigContactInfo , which will make the config visible in SSO Admin mmc. The name has to be the one which was specified while installing Microsoft SSO MMC snapIn tool.</param> /// <param name="redeploy">Boolean, Redeploy flag (True: Deletes existing SSO and imports the new, False : Imports the new SSO without deleting previous one).</param> /// <returns>Returns true/fasle.</returns> public static bool ImportSSOconfig(string ssoKey, string ssoEncryptedFile, string ssoConfigappName, string SSOConfigContactInfo, bool redeploy, out string exceptionMessage) { bool result = false; try { exceptionMessage = string.Empty; ISSOAdmin ssoAdmin = new ISSOAdmin(); if (redeploy) { ssoAdmin.DeleteApplication(ssoConfigappName); } MSBuildTasks.ImportSSOConfigurationApplicationTask import = new MSBuildTasks.ImportSSOConfigurationApplicationTask(); import.EncryptionKey = ssoKey; import.EncryptedFile = ssoEncryptedFile; result = import.Execute(); if (result) { ssoAdmin.UpdateSSOCompanyName(ssoConfigappName, SSOConfigContactInfo); } } catch (Exception exe) { exceptionMessage = exe.Message; result = false; } return(result); }
/// <summary> /// Retrieve dictionary of field/value pairs /// </summary> /// <param name="appName"></param> /// <param name="description"></param> /// <param name="contactInfo"></param> /// <param name="appUserAcct"></param> /// <param name="appAdminAcct"></param> /// <returns></returns> public static HybridDictionary GetConfigProperties(string appName, out string description, out string contactInfo, out string appUserAcct, out string appAdminAcct) { int flags; int count; //get config info ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(appName, out description, out contactInfo, out appUserAcct, out appAdminAcct, out flags, out count); //get properties ISSOConfigStore configStore = new ISSOConfigStore(); SSOPropBag propertiesBag = new SSOPropBag(); try { configStore.GetConfigInfo(appName, idenifierGUID, SSOFlag.SSO_FLAG_RUNTIME, propertiesBag); } catch (COMException e) { if (!e.Message.StartsWith("The application is currently disabled.")) { throw; } } return(propertiesBag.properties); }
/// <summary> /// Creates a new SSO ConfigStore application. /// </summary> /// <param name="appName"></param> /// <param name="description"></param> /// <param name="uAccountName"></param> /// <param name="adminAccountName"></param> /// <param name="propertiesBag"></param> /// <param name="maskArray"></param> public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SSOPropBag propertiesBag, ArrayList maskArray) { int appFlags = 0; //bitwise operation for flags appFlags |= SSOFlag.SSO_FLAG_APP_CONFIG_STORE; appFlags |= SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL; appFlags |= SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL; ISSOAdmin ssoAdmin = new ISSOAdmin(); //create app ssoAdmin.CreateApplication(appName, description, "ControlCenter", uAccountName, adminAccountName, appFlags, propertiesBag.PropertyCount); //create property fields int counter = 0; //create dummy field in first slot ssoAdmin.CreateFieldInfo(appName, "dummy", 0); //create real fields foreach (DictionaryEntry de in propertiesBag.properties) { string propName = de.Key.ToString(); int fieldFlags = 0; fieldFlags |= Convert.ToInt32(maskArray[counter]); //create property ssoAdmin.CreateFieldInfo(appName, propName, fieldFlags); counter++; } //enable application ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); }
internal static void DeleteApp(string appName) { if (AppExists(appName)) { DeleteConfigInfo(appName); ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.DeleteApplication(appName); } }
/// <summary> /// Deletes an <see cref="AffiliateApplication"/> from the Enterprise Single Sign-On (SSO) server database. /// </summary> public void Delete() { if (!HasOwnership || _lazyConfigStoreCollection.Value.ContainsForeignConfigStores) { throw new InvalidOperationException( $"To prevent any destructive effects, BizTalk.Factory will not delete an {nameof(AffiliateApplication)} " + $"that it has not created or that has other {nameof(ConfigStore)}s than the default one."); } var ssoAdmin = new ISSOAdmin(); ssoAdmin.DeleteApplication(Name); }
private void EnableApplication(string appName, ISSOAdmin admin) { try { int num = 2; admin.UpdateApplication(appName, null, null, null, null, num, num); } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - EnableApplication", ex.Message); } }
private void EnsureSettingsFieldExists() { if (_settingsFieldExists) { return; } var ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateFieldInfo(_affiliateApplicationName, AffiliateApplication.DEFAULT_SETTINGS_KEY, SSOFlag.SSO_FLAG_NONE); ssoAdmin.UpdateApplication(_affiliateApplicationName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); _settingsFieldExists = true; }
private void EnableApplication(string appName, ISSOAdmin admin) { try { int num = 2; admin.UpdateApplication(appName, null, null, null, null, num, num); DoSsoEvent("EnableApplication", string.Format("{0} enabled", appName), false); } catch (Exception ex) { DoSsoEvent("SSO Helper - EnableApplication", ex.Message, true); } }
/// <summary> /// Create an SSO application. /// </summary> /// <param name="application">The name of the affiliate application.</param> /// <param name="type">The type of affiliate application.</param> /// <param name="description">A description for the affiliate application.</param> /// <param name="contact">Contact information for administering the affiliate application.</param> /// <param name="userGroup">The windows group for users that will use the affiliate application.</param> /// <param name="adminGroup">The windows group for administrators of the affiliate application.</param> /// <param name="tickets">A flag indicating if the affiliate application can be used to create SSO tickets.</param> /// <param name="local">A flag indicating whether or not local user accounts can use the affiliate application.</param> public void Create(string application, AffiliateApplicationType type, string description, string contact, string userGroup, string adminGroup, bool tickets, bool local) { try { int flags = 0; int fields = 2; // Set flags. if (type == AffiliateApplicationType.Individual) { flags = SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL; } else if (type == AffiliateApplicationType.Group) { flags = SSOFlag.SSO_WINDOWS_TO_EXTERNAL; flags = flags | SSOFlag.SSO_FLAG_APP_GROUP; flags = flags | SSOFlag.SSO_FLAG_APP_USES_GROUP_MAPPING; } else if (type == AffiliateApplicationType.HostGroup) { flags = SSOFlag.SSO_EXTERNAL_TO_WINDOWS; flags = flags | SSOFlag.SSO_FLAG_APP_GROUP; flags = flags | SSOFlag.SSO_FLAG_APP_USES_GROUP_MAPPING; } else { throw new Exception("Unsupported affiliate application type: " + type.ToString() + "."); } if (tickets) { flags = flags | SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS; } if (local) { flags = flags | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL; } // Create the application ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateApplication(application, description, contact, userGroup, adminGroup, flags, fields); // Create fields used by the application flags = 0; ssoAdmin.CreateFieldInfo(application, "User ID", flags); flags = SSOFlag.SSO_FLAG_FIELD_INFO_MASK | SSOFlag.SSO_FLAG_FIELD_INFO_SYNC; ssoAdmin.CreateFieldInfo(application, "Password", flags); // Enable the application ssoAdmin.UpdateApplication(application, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); } catch (Exception e) { throw new Exception("Failed to create affiliate application " + application + ". " + e.Message); } }
// Borrowed largely from Jon Flanders' SSOAppConfigHelper object. internal static void CreateApp(string appName, string userGroup, string adminGroup) { const int Fields = 2; int flags = SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL; ISSOAdmin _ssoAdmin = new ISSOAdmin(); _ssoAdmin.CreateApplication( appName, appName + " Configuration Data", "*****@*****.**", userGroup, adminGroup, flags, Fields); _ssoAdmin.CreateFieldInfo(appName, "*****@*****.**", SSOFlag.SSO_FLAG_NONE); _ssoAdmin.CreateFieldInfo(appName, PropName, SSOFlag.SSO_FLAG_NONE); _ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); }
private void save(string name) { SSOPropBag propertiesBag = new SSOPropBag(); ISSOAdmin a = new ISSOAdmin(); string appUserAcct, appAdminAcct, description, contactInfo; HybridDictionary props = SSOConfigManager.GetConfigProperties(tvApps.SelectedNode.Text, out description, out contactInfo, out appUserAcct, out appAdminAcct); foreach (DataGridViewRow row in dgvSearch.Rows) { if (row.Cells[0].Value != null) { if (row.Cells[1].Value == null) { MessageBox.Show("The key value cannot be blank!", "Blank key value", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //set values string propName = row.Cells[0].Value.ToString(); object objPropValue = row.Cells[1].Value; propertiesBag.Write(propName, ref objPropValue); if (!props.Contains(propName)) { a.CreateFieldInfo(tvApps.SelectedNode.Text, propName, 0); } } } UpdateSSOApplication(name, name); //didn't work properly in BTS2013R2 //a.UpdateApplication(tvApps.SelectedNode.Text, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); try { SSOConfigManager.SetConfigProperties(tvApps.SelectedNode.Text, propertiesBag); MessageBox.Show("Properties saved successfully.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Error Occured. Details: " + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
internal static bool AppExists(string appName) { string description, contact, grpName, grpAdmin; int flags, fields; ISSOAdmin ssoAdmin = new ISSOAdmin(); try { ssoAdmin.GetApplicationInfo(appName, out description, out contact, out grpName, out grpAdmin, out flags, out fields); return(true); } catch { } return(false); }
public void DeleteApplication(string appName) { try { using (TransactionScope transactionScope = new TransactionScope()) { ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin(); this.Enlist(iSSOAdmin, Transaction.Current); iSSOAdmin.DeleteApplication(appName); transactionScope.Complete(); } } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - DeleteApplication", ex.Message); } }
private void CreateApplicationFields(string appName, ISSOAdmin admin, string[] arrKeys) { try { int flags = 536870912; int num = arrKeys.Length; admin.CreateFieldInfo(appName, string.Format("biztalkadmin@{0}.com", strCompany), flags); for (int i = 0; i < num; i++) { admin.CreateFieldInfo(appName, arrKeys[i].ToString(), flags); } } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - CreateApplicationFields", ex.Message); } }
private void CreateApplicationFields(string appName, ISSOAdmin admin, string[] arrKeys) { try { int flags = 536870912; int num = arrKeys.Length; admin.CreateFieldInfo(appName, _bizTalkEmailAddress, flags); for (int i = 0; i < num; i++) { admin.CreateFieldInfo(appName, arrKeys[i].ToString(), flags); DoSsoEvent("CreateApplicationFields", string.Format("{0}", arrKeys[i]), false); } } catch (Exception ex) { DoSsoEvent("SSO Helper - CreateApplicationFields", ex.Message, true); } }
/// <summary> /// Retrieve dictionary of field/value pairs /// </summary> /// <param name="appName"></param> /// <param name="description"></param> /// <param name="contactInfo"></param> /// <param name="appUserAcct"></param> /// <param name="appAdminAcct"></param> /// <returns></returns> private static HybridDictionary GetConfigProperties(string appName, out string description, out string contactInfo, out string appUserAcct, out string appAdminAcct) { int flags; int count; //get config info ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(appName, out description, out contactInfo, out appUserAcct, out appAdminAcct, out flags, out count); //get properties ISSOConfigStore configStore = new ISSOConfigStore(); SsoPropBag propertiesBag = new SsoPropBag(); configStore.GetConfigInfo(appName, IdenifierGuid, SSOFlag.SSO_FLAG_RUNTIME, propertiesBag); return(propertiesBag.Properties); }
public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SSOPropBag propertiesBag, ArrayList maskArray) { int flags1 = 0 | 1048576 | 4 | 262144; ISSOAdmin ssoAdmin = (ISSOAdmin) new SSOAdmin(); ssoAdmin.CreateApplication(appName, description, "", uAccountName, adminAccountName, flags1, propertiesBag.PropertyCount); int index = 0; ssoAdmin.CreateFieldInfo(appName, "dummy", 0); foreach (DictionaryEntry property in propertiesBag.properties) { string label = property.Key.ToString(); int flags2 = 0 | Convert.ToInt32(maskArray[index]); ssoAdmin.CreateFieldInfo(appName, label, flags2); ++index; } ssoAdmin.UpdateApplication(appName, (string)null, (string)null, (string)null, (string)null, 2, 2); }
public void DeleteApplication(string appName) { try { using (TransactionScope transactionScope = new TransactionScope()) { ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin(); Enlist(iSSOAdmin, Transaction.Current); iSSOAdmin.DeleteApplication(appName); transactionScope.Complete(); DoSsoEvent("DeleteApplication", string.Format("{0}", appName), false); } } catch (Exception ex) { DoSsoEvent("SSO Helper - DeleteApplication", ex.Message, true); } }
public static AffiliateApplication Create( string name, string userGroup = DEFAULT_USER_GROUP_NAME, string administratorGroup = DEFAULT_ADMINISTRATOR_GROUP_NAME, string description = null ) { if (name.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(name)); } if (name.Contains(' ')) { throw new ArgumentException("Name cannot contain spaces.", nameof(name)); } if (FindByName(name) != null) { throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name)); } var application = new AffiliateApplication { Name = name, AdministratorGroup = administratorGroup ?? DEFAULT_ADMINISTRATOR_GROUP_NAME, Contact = DEFAULT_CONTACT_INFO, Description = description ?? $"{name} Configuration Store", UserGroup = userGroup ?? DEFAULT_USER_GROUP_NAME }; var ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateApplication( application.Name, application.Description, application.Contact, application.UserGroup, application.AdministratorGroup, SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL, 1); ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE); ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); return(application); }
public static AffiliateApplication Create( string name, string[] administratorGroups = null, string[] userGroups = null, string description = null) { if (name.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(name)); } if (name.Contains(' ')) { throw new ArgumentException("Name cannot contain spaces.", nameof(name)); } if (FindByName(name) != null) { throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name)); } var application = new AffiliateApplication { Name = name, AdministratorGroups = administratorGroups ?? DefaultAdministratorGroups, Contact = DEFAULT_CONTACT_INFO, Description = description ?? $"{name} Configuration Store", UserGroups = userGroups ?? DefaultUserGroups }; var ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateApplication( application.Name, application.Description, application.Contact, application.UserGroups.JoinGroups(), application.AdministratorGroups.JoinGroups(), SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL, 2 /* number of fields to be created */); ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE); ssoAdmin.CreateFieldInfo(name, DEFAULT_SETTINGS_KEY, SSOFlag.SSO_FLAG_NONE); ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); return(application); }
/// <summary> /// Finds and returns an <see cref="AffiliateApplication"/> by name in the Enterprise Single Sign-On (SSO) server /// database. /// </summary> /// <param name="name"> /// The name of the <see cref="AffiliateApplication"/> to find in Enterprise Single Sign-On (SSO) server database. /// </param> /// <returns> /// The <see cref="AffiliateApplication"/> currently deployed in the Enterprise Single Sign-On (SSO) server database. /// <c>null</c> if the <see cref="AffiliateApplication"/> does not exist in Enterprise Single Sign-On (SSO) server /// database. /// </returns> public static AffiliateApplication FindByName(string name) { try { var ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(name, out var description, out var contact, out var userGroupName, out var adminGroupName, out _, out _); return(new AffiliateApplication { Name = name, Contact = contact, Description = description, AdministratorGroup = adminGroupName, UserGroup = userGroupName }); } catch (COMException exception) { if ((uint)exception.ErrorCode == (uint)HResult.ErrorApplicationNonExistent) { return(null); } throw; } }
/// <summary> /// Deletes an SSO affiliate application. /// </summary> /// <param name="application">The name of the affiliate application to be deleted.</param> public void Delete(string application) { try { if (!Exists(application)) { throw new Exception("The application does not exist."); } else { ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.DeleteApplication(application); } } catch (Exception e) { throw new Exception("Failed to delete application " + application + ". " + e.Message); } }
/// <summary> /// Finds and returns an <see cref="AffiliateApplication"/> by name in the Enterprise Single Sign-On (SSO) server /// database. /// </summary> /// <param name="name"> /// The name of the <see cref="AffiliateApplication"/> to find in Enterprise Single Sign-On (SSO) server database. /// </param> /// <returns> /// The <see cref="AffiliateApplication"/> currently deployed in the Enterprise Single Sign-On (SSO) server database. /// <c>null</c> if the <see cref="AffiliateApplication"/> does not exist in Enterprise Single Sign-On (SSO) server /// database. /// </returns> public static AffiliateApplication FindByName(string name) { try { var ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(name, out var description, out var contact, out var userGroupName, out var adminGroupName, out _, out _); return(new AffiliateApplication { Name = name, Contact = contact, Description = description, AdministratorGroup = adminGroupName, UserGroup = userGroupName }); } catch (COMException exception) { // Error Code = 'The application does not exist.' // see https://weblog.west-wind.com/posts/2007/Apr/18/C-HRESULT-comparison if ((uint)exception.ErrorCode == 0xC0002A04) { return(null); } throw; } }
public void CreateApplication(string name, string[] arrKeys) { try { using (TransactionScope transactionScope = new TransactionScope()) { int numFields = arrKeys.Length; int flags = 1310720; ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin(); this.Enlist(iSSOAdmin, Transaction.Current); iSSOAdmin.CreateApplication(name, name + " Configuration Data", string.Format("biztalkadmin@{0}.com", strCompany), this.strAffiliateAppMgrGroup, this.strSSOAdminGroup, flags, numFields); this.CreateApplicationFields(name, iSSOAdmin, arrKeys); this.EnableApplication(name, iSSOAdmin); transactionScope.Complete(); } } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - CreateApplication", ex.Message); } }
/// <summary> /// Check to see if the current user has SSO Administrator permissions. /// </summary> /// <returns> /// True if the current user has SSO Administrator permissions, or /// false otherwise. /// </returns> private static void CheckSSOPermissions() { // Try and get the global info from SSO try { int flags; int auditAppDeleteMax; int auditMappingDeleteMax; int auditNtpLookupMax; int auditXpLookupMax; int ticketTimeout; int credCacheTimeout; string secretServer; string SSOAdminGroup; string affiliateAppMgrGroup; ISSOAdmin admin = new ISSOAdmin(); // Microsoft.BizTalk.SSOClient.Interop.ISSOAdmin admin = new Microsoft.BizTalk.SSOClient.Interop.ISSOAdmin(); admin.GetGlobalInfo( out flags, out auditAppDeleteMax, out auditMappingDeleteMax, out auditNtpLookupMax, out auditXpLookupMax, out ticketTimeout, out credCacheTimeout, out secretServer, out SSOAdminGroup, out affiliateAppMgrGroup); } catch (UnauthorizedAccessException ex) { TraceManager.SmartTrace.TraceError(ex); // Failed so we don't have the correct permissions throw new ApplicationException(string.Format( @"The current user '\\{0}\{1}' failed to connect to the BizTalk management database.", Environment.UserDomainName, Environment.UserName)); } }
public void CreateApplication(string name, string[] arrKeys) { try { using (TransactionScope transactionScope = new TransactionScope()) { int numFields = arrKeys.Length; int flags = 1310720; ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin(); Enlist(iSSOAdmin, Transaction.Current); iSSOAdmin.CreateApplication(name, name + " Configuration Data", _bizTalkEmailAddress, _affiliateAppMgrGroup, _ssoAdminGroup, flags, numFields); DoSsoEvent("CreateApplication", string.Format("{0}", name), false); CreateApplicationFields(name, iSSOAdmin, arrKeys); EnableApplication(name, iSSOAdmin); transactionScope.Complete(); } } catch (Exception ex) { DoSsoEvent("SSO Helper - CreateApplication", ex.Message, true); } }
/// <summary> /// Retrieve dictionary of field/value pairs /// </summary> /// <param name="appName"></param> /// <param name="description"></param> /// <param name="contactInfo"></param> /// <param name="appUserAcct"></param> /// <param name="appAdminAcct"></param> /// <returns></returns> public static HybridDictionary GetConfigProperties(string appName, out string description, out string contactInfo, out string appUserAcct, out string appAdminAcct) { int flags; int count; //get config info ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.GetApplicationInfo(appName, out description, out contactInfo, out appUserAcct, out appAdminAcct, out flags, out count); //get properties ISSOConfigStore configStore = new ISSOConfigStore(); SSOPropBag propertiesBag = new SSOPropBag(); configStore.GetConfigInfo(appName, idenifierGUID, SSOFlag.SSO_FLAG_RUNTIME, propertiesBag); return propertiesBag.properties; }
/// <summary> /// Remove the application /// </summary> /// <param name="appName"></param> public static void DeleteApplication(string appName) { ISSOAdmin ssoAdmin = new ISSOAdmin(); ssoAdmin.DeleteApplication(appName); }