/// <summary> /// UpgradeServersConfig method implementation (Client) /// </summary> private void UpgradeServersConfig(NamedPipeRegistryRecord reg) { NamedPipeRegistryRecord rec = FarmUtilities.InitServerNodeConfiguration(reg); MFAConfig cfg = CFGUtilities.ReadConfiguration(null); ADFSServerHost svr = null; if (cfg.Hosts.ADFSFarm.Servers.Exists(s => s.FQDN.ToLower().Equals(rec.FQDN.ToLower()))) { svr = cfg.Hosts.ADFSFarm.Servers.Find(s => s.FQDN.ToLower().Equals(rec.FQDN.ToLower())); cfg.Hosts.ADFSFarm.Servers.Remove(svr); } svr = new ADFSServerHost(); svr.FQDN = rec.FQDN; svr.CurrentVersion = rec.CurrentVersion; svr.CurrentBuild = rec.CurrentBuild; svr.CurrentMajorVersionNumber = rec.CurrentMajorVersionNumber; svr.CurrentMinorVersionNumber = rec.CurrentMinorVersionNumber; svr.InstallationType = rec.InstallationType; svr.ProductName = rec.ProductName; svr.NodeType = rec.NodeType; svr.BehaviorLevel = rec.BehaviorLevel; svr.HeartbeatTmeStamp = rec.HeartbeatTimestamp; cfg.Hosts.ADFSFarm.Servers.Add(svr); CFGUtilities.WriteConfiguration(null, cfg); using (MailSlotClient mailslot = new MailSlotClient()) { mailslot.Text = Environment.MachineName; mailslot.SendNotification(NotificationsKind.ConfigurationReload); } }
/// <summary> /// RegisterADFSComputer method implementation /// </summary> public static bool RegisterADFSComputer(PSHost host, string servername) { try { string fqdn = Dns.GetHostEntry(servername).HostName.ToLower(); ADFSServerHost srvhost = WebAdminManagerClient.GetCompterInformations(fqdn); if (srvhost != null) { int i = ADFSManager.ADFSFarm.Servers.FindIndex(c => c.FQDN.ToLower() == srvhost.FQDN.ToLower()); if (i < 0) { ADFSManager.ADFSFarm.Servers.Add(srvhost); } else { ADFSManager.ADFSFarm.Servers[i] = srvhost; } ADFSManager.SetDirty(true); ADFSManager.WriteConfiguration(host); } else { return(false); } } catch (Exception ex) { throw ex; } return(true); }
/// <summary> /// ADFSServerControl Constructor /// </summary> public ADFSServerControl(ADFSServerHost server, bool isrunning = true) { _host = server; _panel = new Panel(); _txtpanel = new Panel(); Initialize(isrunning); BackColor = System.Drawing.SystemColors.Window; AutoSize = false; ManagementAdminService.ADFSManager.ServiceStatusChanged += ServersStatusChanged; ManagementAdminService.ADFSManager.RefreshServiceStatus(); }
/// <summary> /// RegisterADFSComputer method implementation /// </summary> public static bool RegisterADFSComputer(PSHost host, string servername, out List <ADFSServerHost> servers) { bool bRet = false; string fqdn = Dns.GetHostEntry(servername).HostName.ToLower(); ADFSServerHost srvhost = WebAdminManagerClient.GetComputerInformations(fqdn); if (srvhost != null) { int i = ADFSManager.ADFSFarm.Servers.FindIndex(c => c.FQDN.ToLower().Equals(srvhost.FQDN.ToLower())); if (i < 0) { ADFSManager.ADFSFarm.Servers.Add(srvhost); } else { ADFSManager.ADFSFarm.Servers[i] = srvhost; } ADFSManager.SetDirty(true); ADFSManager.WriteConfiguration(host); bRet = true; } servers = ADFSManager.ADFSFarm.Servers; return(bRet); }
/// <summary> /// UnPackServerNodeConfiguration method implementation /// </summary> public ADFSServerHost UnPackServerNodeConfiguration(string data) { ADFSServerHost host = new ADFSServerHost(); string[] ps = data.Split('|'); RegistryVersion reg = new RegistryVersion(); reg.VersionFromString(ps[0]); host.CurrentBuild = reg.CurrentBuild; host.CurrentMajorVersionNumber = reg.CurrentMajorVersionNumber; host.CurrentMinorVersionNumber = reg.CurrentMinorVersionNumber; host.CurrentVersion = reg.CurrentVersion; host.InstallationType = reg.InstallationType; host.ProductName = reg.ProductName; string[] px = ps[1].Split(';'); host.FQDN = px[0]; host.BehaviorLevel = Convert.ToInt32(px[1]); host.HeartbeatTmeStamp = Convert.ToDateTime(px[2]); host.NodeType = px[3]; return(host); }
/// <summary> /// MailSlotMessageArrived implementation /// </summary> private void MailSlotMessageArrived(MailSlotServer maislotserver, MailSlotMessage message) { if (message.ApplicationName == "CP1") { switch (message.Operation) { case 0x10: if (IsLocalMessage(message)) { this.EventLog.WriteEntry(string.Format("Server Information REQUEST To {0}", message.Text), EventLogEntryType.SuccessAudit, 10000); using (MailSlotClient mailslot = new MailSlotClient("CP1")) { mailslot.Text = Dns.GetHostEntry(message.Text).HostName.ToLower(); mailslot.SendNotification(0x11); } } break; case 0x11: if (!IsLocalMessage(message)) { string localname = Dns.GetHostEntry("localhost").HostName.ToLower(); if (localname.ToLower().Equals(message.Text.ToLower())) { this.EventLog.WriteEntry(string.Format("Server Information RECEIVED for {0}", message.Text), EventLogEntryType.SuccessAudit, 10000); using (MailSlotClient mailslot = new MailSlotClient("CP1")) { FarmUtilities reg = new FarmUtilities(); mailslot.Text = reg.InitServerNodeConfiguration(); mailslot.SendNotification(0x12); } } } break; case 0x12: if (!IsLocalMessage(message)) { FarmUtilities reg = new FarmUtilities(); ADFSServerHost host = reg.UnPackServerNodeConfiguration(message.Text); ManagementService.EnsureService(); int i = ManagementService.ADFSManager.ADFSFarm.Servers.FindIndex(c => c.FQDN.ToLower() == host.FQDN.ToLower()); if (i < 0) { ManagementService.ADFSManager.ADFSFarm.Servers.Add(host); } else { ManagementService.ADFSManager.ADFSFarm.Servers[i] = host; } ManagementService.ADFSManager.SetDirty(true); ManagementService.ADFSManager.WriteConfiguration(null); this.EventLog.WriteEntry(string.Format("Server Information RESPONSE : {0}", message.Text), EventLogEntryType.SuccessAudit, 10000); } break; } } }