예제 #1
0
        private static void UpgradeFromRegistry()
        {
            var n        = 0;
            var blowFish = new BlowFish(BlowFish.CipherKey);

            while (n < 99)
            {
                var siteName = AppHost.Settings.Get(StorageKey, "site" + n, null) as string;
                if (string.IsNullOrEmpty(siteName))
                {
                    break;
                }

                var server          = AppHost.Settings.Get(StorageKey, "server" + n, string.Empty) as string ?? string.Empty;
                var folder          = AppHost.Settings.Get(StorageKey, "folder" + n, string.Empty) as string ?? string.Empty;
                var userName        = AppHost.Settings.Get(StorageKey, "userName" + n, string.Empty) as string ?? string.Empty;
                var useWindowsAuth  = AppHost.Settings.GetBool(StorageKey, "useWindowsAuth" + n, false);
                var password        = AppHost.Settings.Get(StorageKey, "encryptedpassword" + n, string.Empty) as string ?? string.Empty;
                var dataServiceName = AppHost.Settings.Get(StorageKey, "dataservicename" + n, string.Empty) as string ?? string.Empty;

                if (!string.IsNullOrEmpty(password))
                {
                    password = blowFish.Decrypt_ECB(password);
                }
                else
                {
                    password = AppHost.Settings.Get(StorageKey, "password" + n, string.Empty) as string ?? string.Empty;
                }

                var connection = new Connection
                {
                    UserName        = userName,
                    Password        = password,
                    HostName        = server,
                    DataServiceName = dataServiceName,
                    WebRootPath     = folder,
                    Description     = siteName,
                    UseWindowsAuth  = useWindowsAuth
                };

                ConnectionManager.Add(connection);
                n++;
            }

            ConnectionManager.Save();
            ConnectionManager.Clear();

            FavoriteManager.Clear();
            Storage.Delete(StorageKey);
        }