예제 #1
0
        public void Init(IDbCommonConnectionPlugin data = null)
        {
            m_connectionData = data;

            if (m_connectionData != null)
            {
                txtProfile.SelectedItem = m_connectionData;
            }
        }
예제 #2
0
        public void Init(IDbCommonConnectionPlugin connectionData, ConnectionLoginData loginData)
        {
            m_connectionData = connectionData;
            m_loginData = loginData;

            if (m_loginData != null)
            {
                txtConnectionName.Text = m_loginData.ConnectionName;
            }
        }
예제 #3
0
        public bool IsNew(IDbCommonConnectionPlugin connectionData, ConnectionLoginData data)
        {
            List<ConnectionLoginData> list = GetList(connectionData);
            foreach (ConnectionLoginData listItem in list)
            {
                if (data.Equals(listItem))
                    return false;
            }

            return true;
        }
예제 #4
0
        public void Add(IDbCommonConnectionPlugin connectionData, ConnectionLoginData data)
        {
            List<ConnectionLoginData> list = GetList(connectionData);
            list.Add(data);

            string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), ApplicationFolder, LoginDataFolder, connectionData.ConnectionName, data.ConnectionName);
            Directory.CreateDirectory(Path.GetDirectoryName(path));
            byte[] key = UnicodeEncoding.ASCII.GetBytes(System.Security.Principal.WindowsIdentity.GetCurrent().User.Value);

            byte[] subkey = GetCompressedKey(key, 32);
            Aes aes = AesCryptoServiceProvider.Create();
            aes.Key = subkey;
            aes.IV = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };

            byte[] byteData = Utils.SerializeObjectXML<ConnectionLoginData>(data);
            byte[] resultArray = aes.CreateEncryptor().TransformFinalBlock(byteData, 0, byteData.Length);

            File.WriteAllBytes(path, resultArray);
        }
예제 #5
0
파일: UI.cs 프로젝트: Ne4to/DomainCommonSE
 public void ShowNewConnectionForm(IDbCommonConnectionPlugin data = null)
 {
     using (ConnectForm form = new ConnectForm(data))
     {
         if (form.ShowDialog() == DialogResult.OK)
         {
             if (NewConnectionOpened != null)
                 NewConnectionOpened(this, new UIArgs(form.NewInquiry));
         }
     }
 }
예제 #6
0
 public ConnectForm(IDbCommonConnectionPlugin data = null)
 {
     InitializeComponent();
 }
예제 #7
0
        private List<ConnectionLoginData> GetList(IDbCommonConnectionPlugin connectionData)
        {
            List<ConnectionLoginData> list = null;
            if (!m_data.TryGetValue(connectionData.ConnectionName, out list))
            {
                list = new List<ConnectionLoginData>();
                m_data.Add(connectionData.ConnectionName, list);

                // загрузка списка
                string directoryPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), ApplicationFolder, LoginDataFolder, connectionData.ConnectionName);
                if (Directory.Exists(directoryPath))
                {
                    foreach (string filePath in Directory.GetFiles(directoryPath))
                    {
                        try
                        {
                            byte[] byteArray = File.ReadAllBytes(filePath);

                            byte[] key = UnicodeEncoding.ASCII.GetBytes(System.Security.Principal.WindowsIdentity.GetCurrent().User.Value);

                            byte[] subkey = GetCompressedKey(key, 32);
                            Aes aes = AesCryptoServiceProvider.Create();
                            aes.Key = subkey;
                            aes.IV = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };

                            byte[] decrypted = aes.CreateDecryptor().TransformFinalBlock(byteArray, 0, byteArray.Length);

                            ConnectionLoginData data = Utils.DeserializeObjectXML<ConnectionLoginData>(decrypted, connectionData.LoginDataType);
                            list.Add(data);
                        }
                        catch (Exception) { }
                    }
                }
            }

            return list;
        }
예제 #8
0
 public void Remove(IDbCommonConnectionPlugin connectionData, ConnectionLoginData data)
 {
     List<ConnectionLoginData> list = GetList(connectionData);
     list.Remove(data);
 }
예제 #9
0
 public ConnectionLoginData[] GetData(IDbCommonConnectionPlugin connectionData)
 {
     return GetList(connectionData).ToArray();
 }