Saltar al contenido

Cómo decodificar viewstate

Si hallas algún problema con tu código o trabajo, recuerda probar siempre en un entorno de testing antes subir el código al trabajo final.

Solución:

Aquí hay un decodificador ViewState en línea:

http://ignatu.co.uk/ViewStateDecoder.aspx

Editar: Desafortunadamente, el enlace anterior está muerto; aquí hay otro decodificador ViewState (de los comentarios):

http://viewstatedecoder.azurewebsites.net/

Use Fiddler y tome el estado de vista en la respuesta y péguelo en el cuadro de texto inferior izquierdo y luego decodifique.

Aquí está el código fuente para un visualizador ViewState del artículo de Scott Mitchell sobre ViewState (25 páginas)

using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Web.UI;


namespace ViewStateArticle.ExtendedPageClasses

    /// 
    /// Parses the view state, constructing a viaully-accessible object graph.
    /// 
    public class ViewStateParser
    
        // private member variables
        private TextWriter tw;
        private string indentString = "   ";

        #region Constructor
        /// 
        /// Creates a new ViewStateParser instance, specifying the TextWriter to emit the output to.
        /// 
        public ViewStateParser(TextWriter writer)
        
            tw = writer;
        
        #endregion

        #region Methods
        #region ParseViewStateGraph Methods
        /// 
        /// Emits a readable version of the view state to the TextWriter passed into the object's constructor.
        /// 
        /// The view state object to start parsing at.
        public virtual void ParseViewStateGraph(object viewState)
        
            ParseViewStateGraph(viewState, 0, string.Empty);    
        

        /// 
        /// Emits a readable version of the view state to the TextWriter passed into the object's constructor.
        /// 
        /// A base-64 encoded representation of the view state to parse.
        public virtual void ParseViewStateGraph(string viewStateAsString)
        
            // First, deserialize the string into a Triplet
            LosFormatter los = new LosFormatter();
            object viewState = los.Deserialize(viewStateAsString);

            ParseViewStateGraph(viewState, 0, string.Empty);    
        

        /// 
        /// Recursively parses the view state.
        /// 
        /// The current view state node.
        /// The "depth" of the view state tree.
        /// A label to display in the emitted output next to the current node.
        protected virtual void ParseViewStateGraph(object node, int depth, string label)
        
        #endregion

        /// 
        /// Returns a string containing the  property value a specified number of times.
        /// 
        /// The number of times to repeat the  property.
        /// A string containing the  property value a specified number of times.
        protected virtual string Indent(int depth)
        
            StringBuilder sb = new StringBuilder(IndentString.Length * depth);
            for (int i = 0; i < depth; i++)
                sb.Append(IndentString);

            return sb.ToString();
        
        #endregion

        #region Properties
        /// 
        /// Specifies the indentation to use for each level when displaying the object graph.
        /// 
        /// A string value; the default is three blank spaces.
        public string IndentString
        
            get
            
                return indentString;
            
            set
            
                indentString = value;
            
        
        #endregion
    

Y aquí hay una página simple para leer el estado de vista de un cuadro de texto y graficarlo usando el código anterior

private void btnParse_Click(object sender, System.EventArgs e)
        
            // parse the viewState
            StringWriter writer = new StringWriter();
            ViewStateParser p = new ViewStateParser(writer);

            p.ParseViewStateGraph(txtViewState.Text);
            ltlViewState.Text = writer.ToString();
        

Puedes añadir valor a nuestra información tributando tu experiencia en las reseñas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *