Exemple #1
0
        public override void SavePersonalizationState(PersonalizationState state)
        {
            //  Take care of the unexpected personalization behavior, when User scope is not used, we need to ensure that scope is able to be changed to shared scope.
            //  1. check web.config authorization section that enterSharedScope is allowed to * users.
            //  2. misconfigured authorization section leads to data loss due to the personalization data becomes user scope before saving the state

            if (state.WebPartManager.Personalization.Scope == PersonalizationScope.User)
            {
                try
                {
                    SenseNetPersonalizationProvider.WriteLog(string.Format("SavePersonalizationState --> Personalization.Scope = PersonalizationScope.User: trying to ToggleScope();"));
                    state.WebPartManager.Personalization.ToggleScope();
                }
                catch (InvalidOperationException exc) //logged
                {
                    Logger.WriteException(exc);
                }
                catch (ArgumentOutOfRangeException exc) //logged
                {
                    Logger.WriteException(exc);
                }
            }


            try
            {
                base.SavePersonalizationState(state);
            }
            catch (InvalidContentActionException ex)
            {
                //not enough permissions to save page state, never mind
                Logger.WriteException(ex);
            }
        }
        public override void SavePersonalizationState(PersonalizationState state)
        {
            if (this.IsEnabled)
            {
                DictionaryPersonalizationState dictionaryState = state as DictionaryPersonalizationState;
                if (null == dictionaryState)
                {
                    throw new ArgumentException("state is not a DictionaryPersonalizationState");
                }

                if (!dictionaryState.ReadOnly)
                {
                    StringBuilder personalizationBuilder = new StringBuilder();
                    using (StringWriter stringWriter = new StringWriter(personalizationBuilder))
                    {
                        using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
                        {
                            writer.Formatting = Formatting.Indented;
                            writer.WriteStartDocument();
                            writer.WriteStartElement("personalization");
                            writer.WriteAttributeString("version", ReflectionServices.Version());
                            foreach (string id in dictionaryState.States.Keys)
                            {
                                if (dictionaryState.IsPartPresent(id))
                                {
                                    writer.WriteStartElement("part");
                                    writer.WriteAttributeString("id", id);
                                    foreach (string propertyName in dictionaryState.States[id].Keys)
                                    {
                                        writer.WriteStartElement("property");
                                        writer.WriteAttributeString("name", propertyName);
                                        writer.WriteStartAttribute("sensitive");
                                        writer.WriteValue(dictionaryState.States[id][propertyName].IsSensitive);
                                        writer.WriteEndAttribute();
                                        writer.WriteStartAttribute("scope");
                                        writer.WriteValue((int)dictionaryState.States[id][propertyName].Scope);
                                        writer.WriteEndAttribute();
                                        object value = dictionaryState.States[id][propertyName].Value;
                                        if (null != value)
                                        {
                                            writer.WriteStartElement("value");
                                            writer.WriteStartAttribute("type");
                                            writer.WriteValue(SerializationServices.ShortAssemblyQualifiedName(value.GetType().AssemblyQualifiedName));
                                            writer.WriteEndAttribute();
                                            SerializationServices.Serialize(value, writer);
                                            writer.WriteEndElement();
                                        }
                                        writer.WriteEndElement();
                                    }
                                    writer.WriteEndElement();
                                }
                            }
                            writer.WriteEndElement();
                            writer.WriteEndDocument();
                        }
                    }
                    PersonalizationStorage.Instance.Write(XmlPersonalizationProvider.StorageKey, personalizationBuilder.ToString());
                }
            }
        }
 public override PersonalizationScope DetermineInitialScope(
     WebPartManager webPartManager,
     PersonalizationState loadedState)
 {
     return(base.DetermineInitialScope(webPartManager, loadedState));
 }
 public override void SavePersonalizationState(PersonalizationState state)
 {
     base.SavePersonalizationState(state);
 }
 public virtual void SavePersonalizationState(PersonalizationState state)
 {
 }
 public virtual PersonalizationScope DetermineInitialScope(WebPartManager webPartManager, PersonalizationState loadedState)
 {
 }
 public virtual void SavePersonalizationState(PersonalizationState state)
 {
 }
 // Methods
 public virtual PersonalizationScope DetermineInitialScope(WebPartManager webPartManager, PersonalizationState loadedState)
 {
 }
 public void SavePersonalizationState(PersonalizationState state)
 {
     SqlPersonalizationProvider.SavePersonalizationState(state);
 }
 public PersonalizationScope DetermineInitialScope(WebPartManager webPartManager, PersonalizationState loadedState)
 {
     return(SqlPersonalizationProvider.DetermineInitialScope(webPartManager, loadedState));
 }