/// <summary> /// Updates the specified application including both, metadata information /// and fields. /// </summary> /// <param name="appConfig">Configuration information used to update the application.</param> /// <param name="recreate">Value indicating wheter to recreate the application.</param> public static void UpdateApplication(SSOAppConfig appConfig, bool recreate) { using (TransactionScope transactionScope = new TransactionScope()) { // create SSO objects ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); ISSOConfigStore ssoConfigStore = new ISSOConfigStore(); // enlist them in the transaction SSOManager.Enlist(ssoAdmin as IPropertyBag, Transaction.Current); SSOManager.Enlist(ssoConfigStore as IPropertyBag, Transaction.Current); // check if the application needs to be recreated or just updated if (recreate == true) { // delete and recreate SSOManager.DeleteApplication(ssoAdmin, appConfig.AppInfo.Name); SSOManager.CreateApplication(ssoAdmin, appConfig); } else { // just update the application metadata SSOManager.UpdateApplicationInfo(ssoAdmin, appConfig.AppInfo); } // update the application fields ssoConfigStore.SetConfigInfo(appConfig.AppInfo.Name, SSOManager.ConfigIdentifier, appConfig.AppFields); // commit the transaction transactionScope.Complete(); } }
/// <summary> /// Loads the SSO server information. /// </summary> private static void LoadSSOServerInfo() { try { int flags; int auditAppDeleteMax; int auditMappingDeleteMax; int auditNtpLookupMax; int auditXpLookupMax; int ticketTimeout; int credCacheTimeout; ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); ssoAdmin.GetGlobalInfo( out flags, out auditAppDeleteMax, out auditMappingDeleteMax, out auditNtpLookupMax, out auditXpLookupMax, out ticketTimeout, out credCacheTimeout, out SSOManager.SSOSecrectServer, out SSOManager.SSOAdminAccounts, out SSOManager.SSOAffiliateAdminAccounts); SSOManager.SSODBServer = Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Server", "") as string; SSOManager.SSODatabase = Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Database", "") as string; } catch (Exception ex) { EventLog.WriteEntry("HR - SSO MMC Snap - LoadSSOServerInfo", ex.Message); } }
/// <summary> /// Enables/disables the specified application. /// </summary> /// <param name="appName">The name of the application.</param> /// <param name="enable">Value indicating whether to enable or disable the application.</param> public static void EnableApplication(string appName, bool enable) { ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); int flagMask = SSOFlag.SSO_FLAG_ENABLED; int flags = enable ? SSOFlag.SSO_FLAG_ENABLED : SSOFlag.SSO_FLAG_NONE; ssoAdmin.UpdateApplication(appName, null, null, null, null, flags, flagMask); }
/// <summary> /// Deletes the specified application. /// </summary> /// <param name="appName">The name of the application to be deleted.</param> public static void DeleteApplication(string appName) { using (TransactionScope transactionScope = new TransactionScope()) { ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); SSOManager.Enlist(ssoAdmin as IPropertyBag, Transaction.Current); SSOManager.DeleteApplication(ssoAdmin, appName); transactionScope.Complete(); } }
/// <summary> /// Updates the application metadata information. /// </summary> /// <remarks> /// For internal use only. Assumes a TransactionScope is created before /// calling this method. /// </remarks> /// <param name="ssoAdmin">ISSOAdmin2 instance.</param> /// <param name="appInfo">Application metadata information.</param> private static void UpdateApplicationInfo(ISSOAdmin2 ssoAdmin, SSOAppInfo appInfo) { // create a separate instance of the SSOAppInfo object // to only copy the information that is updatable SSOAppInfo appInfoUpdate = new SSOAppInfo(); appInfoUpdate.Description = appInfo.Description; appInfoUpdate.Contact = appInfo.Contact; appInfoUpdate.UserAccounts = appInfo.UserAccounts; if (appInfo.UseSSOAffiliateAdmins == false) { appInfoUpdate.AdminAccounts = appInfo.AdminAccounts; } // update the application ssoAdmin.UpdateApplication2(appInfo.Name, appInfoUpdate); }
/// <summary> /// Retrieves the specified application metadata information from the SSO store. /// </summary> /// <param name="appName">The name of the application to retrieve.</param> /// <returns>The instance of the SSOAppInfo.</returns> public static SSOAppInfo GetApplicationInfo(string appName) { try { SSOAppInfo appInfo = new SSOAppInfo() { Name = appName }; ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); ssoAdmin.GetApplicationInfo2(appName, appInfo); return(appInfo); } catch { return(null); } }
public void GetSecretServerName() { try { ISSOAdmin2 iSSOAdmin = (ISSOAdmin2) new SSOAdmin(); int num; int num2; int num3; int num4; int num5; int num6; int num7; iSSOAdmin.GetGlobalInfo(out num, out num2, out num3, out num4, out num5, out num6, out num7, out this.strSecrectServer, out this.strSSOAdminGroup, out this.strAffiliateAppMgrGroup); this.strSsoDBServer = (Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Server", "") as string); this.strSsoDB = (Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Database", "") as string); } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - GetSecretServerName", ex.Message); } }
public void GetSecretServerName() { try { ISSOAdmin2 iSSOAdmin = (ISSOAdmin2) new SSOAdmin(); int flags; int auditAppDeleteMax; int auditMappingDeleteMax; int auditNtpLookupMax; int auditXpLookupMax; int ticketTimeout; int credCacheTimeout; iSSOAdmin.GetGlobalInfo(out flags, out auditAppDeleteMax, out auditMappingDeleteMax, out auditNtpLookupMax, out auditXpLookupMax, out ticketTimeout, out credCacheTimeout, out _secrectServer, out _ssoAdminGroup, out _affiliateAppMgrGroup); _ssoDBServer = (Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Server", "") as string); _ssoDB = (Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\ENTSSO\\SQL", "Database", "") as string); DoSsoEvent("GetSecretServerName", string.Format("Server={0}, Database={1}", _ssoDBServer, _ssoDB), false); } catch (Exception ex) { DoSsoEvent("SSO Helper - GetSecretServerName", ex.Message, true); } }
/// <summary> /// Creates a new application in the SSO store using specified /// ISSOAdmin2 object instance and the configuration information. /// Creates both, the application and fields. /// </summary> /// <remarks> /// For internal use only. Assumes a TransactionScope is created before /// calling this method. /// </remarks> /// <param name="ssoAdmin">ISSOAdmin2 instance.</param> /// <param name="appConfig">Configuration information used to create the application.</param> private static void CreateApplication(ISSOAdmin2 ssoAdmin, SSOAppConfig appConfig) { // set default contact appConfig.AppInfo.Contact = SSOManager.DefaultContact; // fix the fieldCount when creating an application with no fields int fieldCount = Math.Max(1, appConfig.AppFields.Count); // create the sso application ssoAdmin.CreateApplication( appConfig.AppInfo.Name, appConfig.AppInfo.Description, appConfig.AppInfo.Contact, appConfig.AppInfo.UserAccounts, appConfig.AppInfo.AdminAccounts, appConfig.AppInfo.Flags & ~SSOFlag.SSO_FLAG_ENABLED, // the SSO_FLAG_ENABLED flag cannot be specified when creating an SSO application fieldCount); // create dummy field in the first slot ssoAdmin.CreateFieldInfo(appConfig.AppInfo.Name, "(unused)", SSOFlag.SSO_FLAG_NONE); // create the actual fields foreach (SSOAppField field in appConfig.AppFields) { // set field flags int fieldFlags = SSOFlag.SSO_FLAG_NONE; if (field.Masked == true) { fieldFlags |= SSOFlag.SSO_FLAG_FIELD_INFO_MASK; } // create it ssoAdmin.CreateFieldInfo(appConfig.AppInfo.Name, field.Name, fieldFlags); } // enable application if (appConfig.AppInfo.Enabled == true) { ssoAdmin.UpdateApplication(appConfig.AppInfo.Name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); } }
private void Enlist(object obj, Transaction tx) { try { IPropertyBag propertyBag = (IPropertyBag)obj; object dtcTransaction = TransactionInterop.GetDtcTransaction(tx); ISSOAdmin2 iSSOAdmin = (ISSOAdmin2) new SSOAdmin(); int flags; int auditAppDeleteMax; int auditMappingDeleteMax; int auditNtpLookupMax; int auditXpLookupMax; int ticketTimeout; int credCacheTimeout; iSSOAdmin.GetGlobalInfo(out flags, out auditAppDeleteMax, out auditMappingDeleteMax, out auditNtpLookupMax, out auditXpLookupMax, out ticketTimeout, out credCacheTimeout, out _secrectServer, out _ssoAdminGroup, out _affiliateAppMgrGroup); object secrectServer = _secrectServer; propertyBag.Write("CurrentSSOServer", ref secrectServer); propertyBag.Write("Transaction", ref dtcTransaction); } catch (Exception ex) { DoSsoEvent("SSO Helper - Enlist", ex.Message, true); } }
/// <summary> /// Creates a new application in the SSO store using specified /// the configuration information. Creates both, the application /// and fields. /// </summary> /// <param name="appConfig">Configuration information used to create the application.</param> public static void CreateApplication(SSOAppConfig appConfig) { // create a transaction using (TransactionScope transactionScope = new TransactionScope()) { // create SSO objects ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); // enlist them in the transaction SSOManager.Enlist(ssoAdmin as IPropertyBag, Transaction.Current); // create the sso application SSOManager.CreateApplication(ssoAdmin, appConfig); // commit the transaction transactionScope.Complete(); } // update the application fields ISSOConfigStore ssoConfigStore = new ISSOConfigStore(); //SSO.Enlist(ssoConfigStore as IPropertyBag, Transaction.Current); ssoConfigStore.SetConfigInfo(appConfig.AppInfo.Name, SSOManager.ConfigIdentifier, appConfig.AppFields); }
private void Enlist(object obj, Transaction tx) { try { IPropertyBag propertyBag = (IPropertyBag)obj; object dtcTransaction = TransactionInterop.GetDtcTransaction(tx); ISSOAdmin2 iSSOAdmin = (ISSOAdmin2) new SSOAdmin(); int num; int num2; int num3; int num4; int num5; int num6; int num7; iSSOAdmin.GetGlobalInfo(out num, out num2, out num3, out num4, out num5, out num6, out num7, out this.strSecrectServer, out this.strSSOAdminGroup, out this.strAffiliateAppMgrGroup); object obj2 = this.strSecrectServer; propertyBag.Write("CurrentSSOServer", ref obj2); propertyBag.Write("Transaction", ref dtcTransaction); } catch (Exception ex) { EventLog.WriteEntry("SSOConfigCmdTool - Enlist", ex.Message); } }
/// <summary> /// Purges the cached credentials for an application on all Enterprise Single Sign-On (SSO) servers. /// </summary> /// <param name="appName">The name of the application.</param> public static void PurgeApplicationCache(string appName) { ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); ssoAdmin.PurgeCacheForApplication(appName); }
/// <summary> /// Deletes the specified application. /// </summary> /// <remarks> /// For internal use only. Assumes a TransactionScope is created before /// calling this method. /// </remarks> /// <param name="ssoAdmin">ISSOAdmin2 instance.</param> /// <param name="appName">The name of the application to be deleted.</param> private static void DeleteApplication(ISSOAdmin2 ssoAdmin, string appName) { ssoAdmin.DeleteApplication(appName); }
/// <summary> /// Updates the application metadata information. /// </summary> /// <param name="appInfo">Application metadata information.</param> public static void UpdateApplicationInfo(SSOAppInfo appInfo) { ISSOAdmin2 ssoAdmin = new ISSOAdmin2(); SSOManager.UpdateApplicationInfo(ssoAdmin, appInfo); }