Ejemplo n.º 1
0
    protected void SavePageStateToSession( Object vs )
    {
        switch( _vsst )
        {
            case ViewStateStorageType.Page:
                base.SavePageStateToPersistenceMedium( vs );
                break;

            case ViewStateStorageType.SessionID: case ViewStateStorageType.SessionGUID:
                {
                    String id;
                    if( _vsst == ViewStateStorageType.SessionID )
                        id = ViewStateID;
                    else
                    {
                        id = Guid.NewGuid().ToString( "N" );
                        Page.ClientScript.RegisterHiddenField( Hidden_ViewstateID, id );
                    }

                    using( MemoryStream stm = new MemoryStream() )
                    {
                        using( StreamWriter wr = new StreamWriter(stm, Encoding.ASCII) )            
                            LosFmt.Serialize( wr, vs );

                        Session[ id ] = stm.ToArray();
                    }
                }
                break;            
        }                            
    }
Ejemplo n.º 2
0
    protected Object LoadPageStateFromSession()
    {        
        switch( _vsst )
        {
            case ViewStateStorageType.Page:
                return base.LoadPageStateFromPersistenceMedium();

            case ViewStateStorageType.SessionID:
                {
                    Object res = null;
                    String id = ViewStateID;
                    if( id != null && id.Length != 0 )
                    {
                        res = Session[ id ];
                        if( res != null )
                        {
                            using( MemoryStream stm = new MemoryStream((Byte[])res) )
                            {
                                using( StreamReader rd = new StreamReader(stm, Encoding.ASCII) )            
                                    res = LosFmt.Deserialize( rd );
                            }
                        }
                    }
                    return res;
                }

            case ViewStateStorageType.SessionGUID:
                {
                    Object res = null;
                    String id = Request.Form[ Hidden_ViewstateID ];
                    if( id != null && id.Length != 0 )
                    {
                        res = Session[ id ];
                        if( res != null )
                        {
                            Cache.Add( id, res, null, DateTime.Now.AddMinutes(CACHE_VS_TIMEOUT),
                                System.Web.Caching.Cache.NoSlidingExpiration,
                                System.Web.Caching.CacheItemPriority.Normal, null );
                            Session.Remove( id );
                        }
                        else
                            res = Cache[ id ];

                        if( res != null )
                            using( MemoryStream stm = new MemoryStream((Byte[])res) )
                            {
                                using( StreamReader rd = new StreamReader(stm, Encoding.ASCII) )            
                                    res = LosFmt.Deserialize( rd );
                            }
                    }
                    return res;
                }

            default:
                return null;

        }
    }