Пример #1
0
                /// <summary>
                /// XMLファイルからIDとパスワードを読み込み、ハッシュテーブル化する
                /// </summary>
                ///
                /// <param name="filename">読み込むXMLファイル名</param>
                /// <param name="keyword">アカウントデータを読み込むキー</param>
                /// <returns>IDをキー、Passwodを値としたハッシュテーブル</returns>
                public void loadAccounts(string filename, string keyword)
                {
                    string filepath = "";

                    if (Path.IsPathRooted(filename))
                    {
                        filepath = filename;
                        filename = Path.GetFileName(filename);
                    }
                    else
                    {
                        filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
                    }
                    if (File.Exists(filepath))
                    {
                        try
                        {
                            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(XmlTricksterRoot));
                            System.IO.FileStream fs           = new System.IO.FileStream(filepath, System.IO.FileMode.Open);
                            XmlTricksterRoot     XmlRoot      = (XmlTricksterRoot)serializer.Deserialize(fs);
                            XmlMyAccounts        accountDatas = new XmlMyAccounts();
                            accountDatas = XmlRoot.MyAccount;
                            String PasswordDecryptKey;
                            PasswordDecryptKey = getKeyword(accountDatas.EncryptKey);

                            if (AccountController.MasterKey != PasswordDecryptKey)
                            {
                                SimpleLogger.WriteLine("failed to match MasterKey and EncryptedKey in account data.");
                                MessageBox.Show("暗号化キーワードが一致しないためアカウント情報を読み込めませんでした。", "アカウント情報読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                return;
                            }
                            AccountController.isLoadedAccount = true;

                            XmlAccount[] dataPack = (XmlAccount[])accountDatas.AccountList;

                            foreach (XmlAccount data in dataPack)
                            {
                                Accounts.AccountProperties props = new Accounts.AccountProperties();
                                //AccountData[data.ID] = Common.DecryptString(data.Password, AccountController.MasterKey);
                                props.ID       = data.ID;
                                props.Password = Common.DecryptString(data.Password, PasswordDecryptKey);
                                if (data.Site.Equals(null))
                                {
                                    props.Site = Accounts.AccountProperties.LoginSite.Official;
                                }
                                else
                                {
                                    try
                                    {
                                        props.Site = (Accounts.AccountProperties.LoginSite)data.Site;
                                    }catch (Exception e) {
                                        SimpleLogger.WriteLine(e.Message);
                                        props.Site = Accounts.AccountProperties.LoginSite.Official;
                                    }
                                }

                                AccountData.Add(props);
                            }
                            fs.Close();
                        }
                        catch (FileLoadException fle)
                        {
                            SimpleLogger.WriteLine(fle.GetType().ToString() + Environment.NewLine + fle.Message);
                            //MessageBox.Show("例外エラー:\nファイルの読み込みに失敗しました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            //return;
                            throw fle;
                        }
                        catch (System.Xml.XmlException xe)
                        {
                            SimpleLogger.WriteLine(xe.GetType().ToString() + Environment.NewLine + xe.Message);
                            //MessageBox.Show("例外エラー:\nデータの処理に失敗しました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            //return;
                            throw xe;
                        }
                        catch (System.UnauthorizedAccessException uae)
                        {
                            SimpleLogger.WriteLine(uae.GetType().ToString() + Environment.NewLine + uae.Message);
                            //MessageBox.Show("例外エラー:\nアカウントファイルが読み取り専用か、権限がないため読み込めませんでした。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            //return;
                            throw uae;
                        }
                        catch (System.InvalidOperationException ioe)
                        {
                            SimpleLogger.WriteLine(ioe.GetType().ToString() + Environment.NewLine + ioe.Message);
                            //MessageBox.Show("例外エラー:\n無効なメソッドの呼び出しが行われました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            //return;
                            throw ioe;
                        }
                    }
                    else
                    {
                        SimpleLogger.WriteLine("account file 'accounts.dat' could not read/found.");
                        MessageBox.Show("アカウント情報ファイルを読み込めませんでした。" + Environment.NewLine + "'" + filepath + "'", "Trickster Tools", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        isLoadedAccount = false;
                        return;
                    }
                }
Пример #2
0
                public void saveAccounts(string filename, string keyword)
                {
                    string PasswordEncryptKey;

                    XmlAccount[] config = new XmlAccount[AccountData.Count];

                    PasswordEncryptKey = setKeyword(keyword);
                    IEnumerator ienum = AccountData.GetEnumerator();
                    int         i     = 0;

                    while (ienum.MoveNext())
                    {
                        Accounts.AccountProperties acprop = (Accounts.AccountProperties)ienum.Current;
                        config[i]          = new XmlAccount();
                        config[i].ID       = acprop.ID;
                        config[i].Password = Common.EncryptString(acprop.Password, keyword);
                        config[i].Site     = (int)acprop.Site;
                        i++;
                    }
                    XmlMyAccounts accountdatas = new XmlMyAccounts();

                    accountdatas.AccountList = config;
                    accountdatas.EncryptKey  = PasswordEncryptKey;

                    XmlTricksterRoot XmlRoot = new XmlTricksterRoot();

                    XmlRoot.MyAccount = accountdatas;


                    string filepath = "";

                    if (Path.IsPathRooted(filename))
                    {
                        filepath = filename;
                        filename = Path.GetFileName(filename);
                    }
                    else
                    {
                        filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
                    }

                    if (!File.Exists(filepath))
                    {
                        // ファイルがなければ作成
                        FileStream fs = new FileStream(filepath, FileMode.Create);
                        fs.Close();
                    }

                    FileInfo fi = new FileInfo(filepath);

                    if (fi.IsReadOnly)
                    {
                        SimpleLogger.WriteLine("could not write to file \"" + filepath + "\"");
                        MessageBox.Show("アカウント情報ファイルは読み取り専用のため、保存できません。", "TricksterTools", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (AccountData.Count > 0)
                    {
                        try
                        {
                            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(XmlTricksterRoot));
                            FileStream fs = new FileStream(filepath, FileMode.Create);
                            serializer.Serialize(fs, XmlRoot);
                            fs.Close();
                        }

                        /*
                         * catch (System.Security.SecurityException se)
                         * {
                         *  SimpleLogger.WriteLine(se.GetType().ToString() + Environment.NewLine + se.Message);
                         *  //MessageBox.Show("例外エラー:\nセキュリティエラーです。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         *  throw se;
                         * }
                         */
                        catch (System.IO.IOException ioe)
                        {
                            SimpleLogger.WriteLine(ioe.GetType().ToString() + Environment.NewLine + ioe.Message);
                            //MessageBox.Show("例外エラー:\n入出力時にエラーが発生しました。", "IOException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw ioe;
                        }
                        catch (System.Xml.XmlException xe)
                        {
                            SimpleLogger.WriteLine(xe.GetType().ToString() + Environment.NewLine + xe.Message);
                            //MessageBox.Show("例外エラー:\nアカウント情報読み込みエラー", "XmlException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw xe;
                        }
                        catch (System.Exception e)
                        {
                            SimpleLogger.WriteLine(e.GetType().ToString() + Environment.NewLine + e.Message);
                            //MessageBox.Show("例外エラー:\n原因の特定ができませんでした。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw e;
                        }
                    }
                }
Пример #3
0
        /// <summary>
        /// XMLファイルから設定を読み込み、クラス内のプロパティに設定する
        /// </summary>
        ///
        /// <param name="pluginName">プラグイン名</param>
        /// <returns>IPluginConfig</returns>
        public static IPluginConfig loadSettings(string PluginName)
        {
            string filepath = "";
            string filename = @".\plugins.config.xml";

            if (Path.IsPathRooted(filename))
            {
                filepath = filename;
                filename = Path.GetFileName(filename);
            }
            else
            {
                filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
            }
            if (File.Exists(filepath))
            {
                try
                {
                    XmlSerializer        serializer = new XmlSerializer(typeof(XmlTricksterRoot));
                    System.IO.FileStream fs         = new System.IO.FileStream(filepath, System.IO.FileMode.Open);
                    XmlTricksterRoot     XmlRoot    = (XmlTricksterRoot)serializer.Deserialize(fs);
                    XmlTools             Tools;
                    XmlPlugin[]          Plugins;


                    if (XmlRoot.Tools.name != "TSLoginManager")
                    {
                        throw new ConfigLoadException("TSLoginManagerのPlugin設定以外の設定ファイルが読み込まれています。" + Environment.NewLine + "設定は読み込まれませんでした。");
                    }
                    Tools   = XmlRoot.Tools;
                    Plugins = Tools.Plugin;
                    foreach (XmlPlugin Plugin in Plugins)
                    {
                        if (Plugin.name.Length == 0)
                        {
                            continue;
                        }

                        if (Plugin.name == PluginName)
                        {
                            return(Plugin.Config);
                        }
                    }
                    throw new PluginConfigNotFoundException();
                }
                catch (ConfigLoadException cle)
                {
                    //MessageBox.Show(cle.Message, "設定読み込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    throw cle;
                }
                catch (PluginConfigNotFoundException pcnfe)
                {
                    throw pcnfe;
                }
                catch (FileLoadException fle)
                {
                    SimpleLogger.WriteLine(fle.Message);
                    //MessageBox.Show("例外エラー:" + Environment.NewLine + "ファイルの読み込みに失敗しました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    throw new ConfigLoadException("ファイルの読み込みに失敗しました。");
                }
                catch (System.Xml.XmlException xe)
                {
                    SimpleLogger.WriteLine(xe.Message);
                    //MessageBox.Show("例外エラー:" + Environment.NewLine + "データの処理に失敗しました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    throw new ConfigLoadException("データの処理に失敗しました。");
                }
                catch (System.InvalidOperationException ioe)
                {
                    SimpleLogger.WriteLine(ioe.Message);
                    //MessageBox.Show("例外エラー:" + Environment.NewLine + "無効なメソッドの呼び出しが行われました。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    throw new ConfigLoadException("無効なメソッドの呼び出しが行われました。");
                }
            }
            else
            {
                SimpleLogger.WriteLine("setting file 'plugins.config.xml' could not read/found.");
                throw new ConfigLoadException("設定ファイルを読み込めませんでした。" + Environment.NewLine + "'" + filepath + "'");
            }
        }
Пример #4
0
        public static void saveConfig(XmlPlugin[] Plugin)
        {
            string           filename = @".\plugins.config.xml";
            XmlTricksterRoot XmlRoot  = new XmlTricksterRoot();
            XmlTools         Tools    = new XmlTools();

            Tools.Plugin  = Plugin;
            XmlRoot.Tools = Tools;


            string filepath = "";

            if (Path.IsPathRooted(filename))
            {
                filepath = filename;
                filename = Path.GetFileName(filename);
            }
            else
            {
                filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
            }

            if (!File.Exists(filepath))
            {
                // ファイルがなければ作成
                FileStream fs = new FileStream(filepath, FileMode.Create);
                fs.Close();
            }

            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(XmlTricksterRoot));
                FileStream    fs         = new FileStream(filepath, FileMode.Create);
                serializer.Serialize(fs, XmlRoot);
                fs.Close();
            }
            catch (System.Security.SecurityException se)
            {
                SimpleLogger.WriteLine(se.Message);
                //MessageBox.Show("例外エラー:" + Environment.NewLine + "セキュリティエラーです。", "SecurityException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw se;
            }
            catch (System.IO.IOException ioe)
            {
                SimpleLogger.WriteLine(ioe.Message);
                //MessageBox.Show("例外エラー:" + Environment.NewLine + "入出力時にエラーが発生しました。", "IOException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw ioe;
            }
            catch (System.Xml.XmlException xe)
            {
                SimpleLogger.WriteLine(xe.Message);
                //MessageBox.Show("例外エラー:" + Environment.NewLine + "設定読み込みエラー", "XmlException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw xe;
            }
            catch (System.Exception e)
            {
                SimpleLogger.WriteLine(e.Message);
                //MessageBox.Show("例外エラー:" + Environment.NewLine + "原因の特定ができませんでした。", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw e;
            }
        }
Пример #5
0
        public static void saveConfig(XmlPlugin[] Plugin)
        {
            string filename = @".\plugins.config.xml";
            XmlTricksterRoot XmlRoot = new XmlTricksterRoot();
            XmlTools Tools = new XmlTools();

            Tools.Plugin = Plugin;
            XmlRoot.Tools = Tools;

            string filepath = "";
            if (Path.IsPathRooted(filename))
            {
                filepath = filename;
                filename = Path.GetFileName(filename);
            }
            else
            {
                filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
            }

            if (!File.Exists(filepath))
            {
                // �t�@�C�����Ȃ���΍쐬
                FileStream fs = new FileStream(filepath, FileMode.Create);
                fs.Close();
            }

            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(XmlTricksterRoot));
                FileStream fs = new FileStream(filepath, FileMode.Create);
                serializer.Serialize(fs, XmlRoot);
                fs.Close();
            }
            catch (System.Security.SecurityException se)
            {
                SimpleLogger.WriteLine(se.Message);
                //MessageBox.Show("��O�G���[:" + Environment.NewLine + "�Z�L�����e�B�G���[�ł��B", "SecurityException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw se;
            }
            catch (System.IO.IOException ioe)
            {
                SimpleLogger.WriteLine(ioe.Message);
                //MessageBox.Show("��O�G���[:" + Environment.NewLine + "���o�͎��ɃG���[���������܂����B", "IOException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw ioe;
            }
            catch (System.Xml.XmlException xe)
            {
                SimpleLogger.WriteLine(xe.Message);
                //MessageBox.Show("��O�G���[:" + Environment.NewLine + "�ݒ�ǂݍ��݃G���[", "XmlException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw xe;
            }
            catch (System.Exception e)
            {
                SimpleLogger.WriteLine(e.Message);
                //MessageBox.Show("��O�G���[:" + Environment.NewLine + "�����̓��肪�ł��܂���ł����B", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw e;
            }
        }
Пример #6
0
                public void saveAccounts(string filename, string keyword)
                {
                    string PasswordEncryptKey;
                    XmlAccount[] config = new XmlAccount[AccountData.Count];

                    PasswordEncryptKey = setKeyword(keyword);
                    IEnumerator ienum = AccountData.GetEnumerator();
                    int i = 0;
                    while(ienum.MoveNext())
                    {
                        Accounts.AccountProperties acprop = (Accounts.AccountProperties)ienum.Current;
                        config[i] = new XmlAccount();
                        config[i].ID = acprop.ID;
                        config[i].Password = Common.EncryptString(acprop.Password, keyword);
                        config[i].Site = (int)acprop.Site;
                        i++;
                    }
                    XmlMyAccounts accountdatas = new XmlMyAccounts();
                    accountdatas.AccountList = config;
                    accountdatas.EncryptKey = PasswordEncryptKey;

                    XmlTricksterRoot XmlRoot = new XmlTricksterRoot();
                    XmlRoot.MyAccount = accountdatas;

                    string filepath = "";
                    if (Path.IsPathRooted(filename))
                    {
                        filepath = filename;
                        filename = Path.GetFileName(filename);
                    }
                    else
                    {
                        filepath = Path.GetFullPath(Environment.CurrentDirectory + @"\" + filename);
                    }

                    if (!File.Exists(filepath))
                    {
                        // �t�@�C�����Ȃ���΍쐬
                        FileStream fs = new FileStream(filepath, FileMode.Create);
                        fs.Close();
                    }

                    FileInfo fi = new FileInfo(filepath);
                    if (fi.IsReadOnly)
                    {
                        SimpleLogger.WriteLine("could not write to file \"" + filepath + "\"");
                        MessageBox.Show("�A�J�E���g���t�@�C���͓ǂݎ���p�̂��߁A�ۑ��ł��܂���B", "TricksterTools", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (AccountData.Count > 0)
                    {
                        try
                        {
                            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(XmlTricksterRoot));
                            FileStream fs = new FileStream(filepath, FileMode.Create);
                            serializer.Serialize(fs, XmlRoot);
                            fs.Close();
                        }
                        /*
                        catch (System.Security.SecurityException se)
                        {
                            SimpleLogger.WriteLine(se.GetType().ToString() + Environment.NewLine + se.Message);
                            //MessageBox.Show("��O�G���[:\n�Z�L�����e�B�G���[�ł��B", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw se;
                        }
                        */
                        catch (System.IO.IOException ioe)
                        {
                            SimpleLogger.WriteLine(ioe.GetType().ToString() + Environment.NewLine + ioe.Message);
                            //MessageBox.Show("��O�G���[:\n���o�͎��ɃG���[���������܂����B", "IOException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw ioe;
                        }
                        catch (System.Xml.XmlException xe)
                        {
                            SimpleLogger.WriteLine(xe.GetType().ToString() + Environment.NewLine + xe.Message);
                            //MessageBox.Show("��O�G���[:\n�A�J�E���g���ǂݍ��݃G���[", "XmlException error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw xe;
                        }
                        catch (System.Exception e)
                        {
                            SimpleLogger.WriteLine(e.GetType().ToString() + Environment.NewLine + e.Message);
                            //MessageBox.Show("��O�G���[:\n�����̓��肪�ł��܂���ł����B", "Exceptional error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            throw e;
                        }
                    }
                }