示例#1
0
        //------------------------------------------------------------------------------
        public bool Load(string settingName, bool secure, SettingBaseAttribute attr, out object value)
        {
            if (secure)
            {
                throw new ArgumentException(
                          String.Format("IsolatedStorageSerializer.Load: " +
                                        "Secure=true canot be applied to the '{0}' setting", settingName));
            }

            return(m_serializer.Load(settingName, attr, out value));
        }
        //------------------------------------------------------------------------------
        public bool Load(string settingName, SettingBaseAttribute attr, out object value)
        {
            settingName = SettingNamePrefix + settingName;

            object encryptedValue;
            bool   loaded = m_Store.Load(settingName, attr, out encryptedValue);

            if (loaded)
            {
                var    encryptedBase64StringData = SettingsSerializerHelper.ConvertUsingTypeConverter <String>(encryptedValue);
                byte[] encryptedBytes            = Convert.FromBase64String(encryptedBase64StringData);

                var entropy        = SettingsConfiguration.SecureSettingsAdditionalEntropy;
                var decryptedValue = ProtectedData.Unprotect(encryptedBytes, entropy, SettingsConfiguration.SecureSettingsScope);

                value = Encoding.ASCII.GetString(decryptedValue);
            }
            else
            {
                value = null;
            }

            return(loaded);
        }