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) { }
// 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)); }