Inheritance: System.Web.UI.WebControls.WebParts.PersonalizationProvider
Beispiel #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);
            }
        }
Beispiel #2
0
        public static void SaveBlob(string path, byte[] sharedDataBlob)
        {
            if (SNP.Page.Current == null || String.IsNullOrEmpty(SNP.Page.Current.Path))
            {
                throw new PersonalizationException("No page loaded.");
            }

            var p = SNP.Page.Current;

            if (p.PersonalizationSettings != null)
            {
                if (sharedDataBlob.Length == 0)
                {
                    SenseNetPersonalizationProvider.WriteLog(String.Format("SaveBlob --> missing personalization settings at {0} path.", SNP.Page.Current.Path));
                }

                p.PersonalizationSettings.SetStream(new MemoryStream(sharedDataBlob));
            }
            else
            {
                BinaryData binaryPers = new BinaryData();
                binaryPers.SetStream(new MemoryStream(sharedDataBlob));
                p.PersonalizationSettings = binaryPers;
            }
            p.Save();
        }
Beispiel #3
0
 public override int ResetUserState(string path, DateTime userInactiveSinceDate)
 {
     SenseNetPersonalizationProvider.WriteLog(String.Concat("SenseNetPersonalizationProvider.ResetUserState called."));
     return(0);
 }
Beispiel #4
0
 public override int ResetState(PersonalizationScope scope, string[] paths, string[] usernames)
 {
     SenseNetPersonalizationProvider.WriteLog(String.Concat("SenseNetPersonalizationProvider.ResetState called."));
     return(0);
 }
Beispiel #5
0
 protected override void SavePersonalizationBlob(WebPartManager webPartManager, string path, string userName, byte[] dataBlob)
 {
     SenseNetPersonalizationProvider.SaveBlob(path, dataBlob);
 }
Beispiel #6
0
 protected override void LoadPersonalizationBlobs(WebPartManager webPartManager, string path, string userName, ref byte[] sharedDataBlob, ref byte[] userDataBlob)
 {
     sharedDataBlob = SenseNetPersonalizationProvider.LoadBlob(path);
 }