/// <summary> /// Соединиться с Агентом /// </summary> private static void Connect(ServersSettings.ConnectionSettings connectionSettings, StreamWriter writer, out AgentSvcClient client, out long sessionID) { // настройка соединения client = new AgentSvcClient(); client.Endpoint.Address = GetEpAddress(connectionSettings.Host, connectionSettings.Port); // создание сессии if (client.CreateSession(out sessionID)) { writer?.WriteLine(AppPhrases.SessionCreated, sessionID); } else { throw new ScadaException(AppPhrases.UnableCreateSession); } // вход в систему string encryptedPassword = ScadaUtils.Encrypt(connectionSettings.Password, connectionSettings.SecretKey, CreateIV(sessionID)); if (client.Login(out string errMsg, sessionID, connectionSettings.Username, encryptedPassword, connectionSettings.ScadaInstance)) { writer?.WriteLine(AppPhrases.LoggedOn); }
/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException(nameof(xmlElem)); } xmlElem.AppendElem("Name", Name); xmlElem.AppendElem("DBMS", DBMS); if (string.IsNullOrEmpty(ConnectionString)) { xmlElem.AppendElem("Server", Server); xmlElem.AppendElem("Database", Database); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); xmlElem.AppendElem("ConnectionString", ""); } else { xmlElem.AppendElem("Server", ""); xmlElem.AppendElem("Database", ""); xmlElem.AppendElem("Username", ""); xmlElem.AppendElem("Password", ""); xmlElem.AppendElem("ConnectionString", ConnectionString); } }
/// <summary> /// Сохранить конфигурацию в файле /// </summary> public bool Save(string fileName, out string errMsg) { try { XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); xmlDoc.AppendChild(xmlDecl); XmlElement rootElem = xmlDoc.CreateElement("KpEmailConfig"); xmlDoc.AppendChild(rootElem); rootElem.AppendElem("Host", Host); rootElem.AppendElem("Port", Port); rootElem.AppendElem("User", User); rootElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); rootElem.AppendElem("EnableSsl", EnableSsl); rootElem.AppendElem("SenderAddress", SenderAddress); rootElem.AppendElem("SenderDisplayName", SenderDisplayName); xmlDoc.Save(fileName); errMsg = ""; return(true); } catch (Exception ex) { errMsg = CommPhrases.SaveKpSettingsError + ":" + Environment.NewLine + ex.Message; return(false); } }
/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException(nameof(xmlElem)); } if (!string.IsNullOrEmpty(Name)) { xmlElem.AppendElem("Name", Name); } xmlElem.AppendElem("Host", Host); xmlElem.AppendElem("Port", Port); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); if (!string.IsNullOrEmpty(Instance)) { xmlElem.AppendElem("Instance", Instance); } xmlElem.AppendElem("Timeout", Timeout); xmlElem.AppendElem("SecretKey", ScadaUtils.BytesToHex(SecretKey)); }
/// <summary> /// Сохранить настройки в заданный XML-элемент. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } if (Format == XmlFormat.Attr) { xmlElem.AppendParamElem("ServerHost", ServerHost, "Имя компьютера или IP-адрес SCADA-Сервера", "SCADA-Server host or IP address"); xmlElem.AppendParamElem("ServerPort", ServerPort, "Номер TCP-порта SCADA-Сервера", "SCADA-Server TCP port number"); xmlElem.AppendParamElem("ServerUser", ServerUser, "Имя пользователя для подключения", "User name for the connection"); xmlElem.AppendParamElem("ServerPwd", ServerPwd, "Пароль пользователя для подключения", "User password for the connection"); xmlElem.AppendParamElem("ServerTimeout", ServerTimeout, "Таймаут ожидания ответа, мс", "Response timeout, ms"); } else { xmlElem.AppendElem("Host", ServerHost); xmlElem.AppendElem("Port", ServerPort); xmlElem.AppendElem("User", ServerUser); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(ServerPwd)); xmlElem.AppendElem("Timeout", ServerTimeout); } }
public Password GetEncryptor(string password) { return(new Password { password = password, encryptedPassword = ScadaUtils.Encrypt(password) }); }
/// <summary> /// Adds the options to the list. /// </summary> public void AddToOptionList(OptionList options) { options.Clear(); options["AutoAccept"] = AutoAccept.ToLowerString(); options["Username"] = Username; options["Password"] = ScadaUtils.Encrypt(Password); options["ConfigFileName"] = ConfigFileName; options["DeviceFilter"] = DeviceFilter.ToRangeString(); }
/// <summary> /// Сохранить конфигурацию модуля /// </summary> public bool Save(out string errMsg) { try { XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); xmlDoc.AppendChild(xmlDecl); XmlElement rootElem = xmlDoc.CreateElement("ModDBExport"); xmlDoc.AppendChild(rootElem); // сохранение назначений экспорта XmlElement expDestsElem = rootElem.AppendElem("ExportDestinations"); foreach (ExportDestination expDest in ExportDestinations) { XmlElement expDestElem = expDestsElem.AppendElem("ExportDestination"); // сохранение источника данных DataSource dataSource = expDest.DataSource; XmlElement dataSourceElem = expDestElem.AppendElem("DataSource"); dataSourceElem.AppendElem("DBType", dataSource.DBType); dataSourceElem.AppendElem("Server", dataSource.Server); dataSourceElem.AppendElem("Database", dataSource.Database); dataSourceElem.AppendElem("User", dataSource.User); dataSourceElem.AppendElem("Password", ScadaUtils.Encrypt(dataSource.Password)); string connStr = dataSource.ConnectionString; string bldConnStr = dataSource.BuildConnectionString(); dataSourceElem.AppendElem("ConnectionString", !string.IsNullOrEmpty(bldConnStr) && bldConnStr == connStr ? "" : connStr); // сохранение параметров экспорта expDest.ExportParams.SaveToXml(expDestElem.AppendElem("ExportParams")); } // сохранение номеров каналов управления для экспорта в ручном режиме XmlElement manExpElem = rootElem.AppendElem("ManualExport"); manExpElem.AppendElem("CurDataCtrlCnlNum", CurDataCtrlCnlNum); manExpElem.AppendElem("ArcDataCtrlCnlNum", ArcDataCtrlCnlNum); manExpElem.AppendElem("EventsCtrlCnlNum", EventsCtrlCnlNum); xmlDoc.Save(FileName); errMsg = ""; return(true); } catch (Exception ex) { errMsg = ModPhrases.SaveModSettingsError + ": " + ex.Message; return(false); } }
/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException(nameof(xmlElem)); } xmlElem.AppendElem("RequireCaptcha", RequireCaptcha); xmlElem.AppendElem("AllowRememberMe", AllowRememberMe); xmlElem.AppendElem("RememberMeExpires", RememberMeExpires); xmlElem.AppendElem("AutoLoginUsername", AutoLoginUsername); xmlElem.AppendElem("AutoLoginPassword", ScadaUtils.Encrypt(AutoLoginPassword)); }
/// <summary> /// Saves the settings into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } xmlElem.AppendElem("Server", Server); xmlElem.AppendElem("Database", Database); xmlElem.AppendElem("User", User); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); xmlElem.AppendElem("ConnectionString", ConnectionString); }
/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } xmlElem.AppendElem("ServerUrl", ServerUrl); xmlElem.AppendElem("SecurityMode", SecurityMode); xmlElem.AppendElem("SecurityPolicy", SecurityPolicy); xmlElem.AppendElem("AuthenticationMode", AuthenticationMode); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); }
/// <summary> /// Saves the settings into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } xmlElem.AppendElem("Host", Host); xmlElem.AppendElem("Port", Port); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); xmlElem.AppendElem("ScadaInstance", ScadaInstance); xmlElem.AppendElem("SecretKey", ScadaUtils.BytesToHex(SecretKey)); }
/// <summary> /// Adds the options to the list. /// </summary> public void AddToOptionList(OptionList options, bool clearList = true) { if (clearList) { options.Clear(); } options["Server"] = Server; options["Port"] = Port.ToString(); options["ClientID"] = ClientID; options["Username"] = Username; options["Password"] = ScadaUtils.Encrypt(Password); options["Timeout"] = Timeout.ToString(); options["ProtocolVersion"] = ProtocolVersion.ToString(); }
public EncryptedXmlInfo Encrypt(XElement plaintextElement) { ArgumentNullException.ThrowIfNull(plaintextElement, nameof(plaintextElement)); try { XNamespace xNamespace = "http://schemas.asp.net/2015/03/dataProtection"; string encryptedValue = ScadaUtils.Encrypt(plaintextElement.ToString()); return(new EncryptedXmlInfo(new XElement(xNamespace + "value", encryptedValue), typeof(XmlEncryptor))); } catch (Exception ex) { log.WriteError(ex); throw; } }
/// <summary> /// Connects and authenticates with Agent /// </summary> protected void Connect() { if (!client.CreateSession(out sessionID)) { throw new ScadaException(Localization.UseRussian ? "Не удалось создать сессию." : "Unable to create session."); } string encryptedPassword = ScadaUtils.Encrypt(connSettings.Password, connSettings.SecretKey, CreateIV(sessionID)); if (!client.Login(out string errMsg, sessionID, connSettings.Username, encryptedPassword, connSettings.ScadaInstance)) { throw new ScadaException(string.Format( Localization.UseRussian ? "Не удалось войти в систему - {0}." : "Unable to login - {0}", errMsg)); } }
/// <summary> /// Saves the configuration to the specified writer. /// </summary> protected override void Save(TextWriter writer) { XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); xmlDoc.AppendChild(xmlDecl); XmlElement rootElem = xmlDoc.CreateElement("DrvEmail"); xmlDoc.AppendChild(rootElem); rootElem.AppendElem("Host", Host); rootElem.AppendElem("Port", Port); rootElem.AppendElem("Username", Username); rootElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); rootElem.AppendElem("EnableSsl", EnableSsl); rootElem.AppendElem("SenderAddress", SenderAddress); rootElem.AppendElem("SenderDisplayName", SenderDisplayName); xmlDoc.Save(writer); }
/// <summary> /// Encrypts the password. /// </summary> public static string EncryptPassword(string password, long sessionID, byte[] secretKey) { return(secretKey == null ? password : ScadaUtils.Encrypt(password, secretKey, CreateIV(sessionID))); }