Respondida Encriptar QueryString asp.net

  • miércoles, 23 de mayo de 2012 20:19
     
     

    Hola, quisiera saber como puedo encriptar los valores de un QueryString, para evitar que esten a simple vista

    Ejemplo: Mipagina.aspx?cod=1

    Por algo asi: Mipagina.aspx?valor=nalskjdlaks121jdasldjqio192391

    Muchas gracias de antemano


    dParedes

Todas las respuestas

  • miércoles, 23 de mayo de 2012 21:20
    Moderador
     
     Respondida

    hola

    aqui se realiza el mismo planteo

    http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/ec5c5419-9c45-485f-a11d-358f13e454f0

    valida la respuesta que proporciono seguro es de ayuda

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

  • lunes, 24 de septiembre de 2012 16:16
     
     

    Antes de iniciar hay que tener claro que métodos de encriptación hay muchos, desde los personales hasta el MD5 y todos los conocidos y algunos afirmaran que por que enviar alguno datos que consideramos que nos generen algún tipo de vulnerabilidad por un post eso no quiero entrar a discutirlo ahora.  Pero todos alguna vez hemos visto una URL y hemos estado jugueteando con los parámetros para modificar el comportamiento de la página Web, así que en determinadas ocasiones es importante el realizar este procedimiento de cifrado. 

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections.Specialized;
    using System.Collections;
    namespace encryp
    {
         public class QueryString : NameValueCollection
        {
            private string document;
            public string Document
            {
                get
                {
                    return document;
                }
            }
            public QueryString()
            {
            }
            public QueryString(NameValueCollection clone)
                : base(clone)
            {
            }
            public static QueryString FromCurrent()
            {
                return FromUrl(HttpContext.Current.Request.Url.AbsoluteUri);
            }
            public static QueryString FromUrl(string url)
            {
                string[] parts = url.Split("?".ToCharArray());
                QueryString qs = new QueryString();
                qs.document = parts[0];
                if (parts.Length == 1)
                    return qs;
                string[] keys = parts[1].Split("&".ToCharArray());
                foreach (string key in keys)
                {
                    string[] part = key.Split("=".ToCharArray());
                    if (part.Length == 1)
                        qs.Add(part[0], "");
                    qs.Add(part[0], part[1]);
                }
                return qs;
            }
            public void ClearAllExcept(string except)
            {
                ClearAllExcept(new string[] { except });
            }
            public void ClearAllExcept(string[] except)
            {
                ArrayList toRemove = new ArrayList();
                foreach (string s in this.AllKeys)
                {
                    foreach (string e in except)
                    {
                        if (s.ToLower() == e.ToLower())
                            if (!toRemove.Contains(s))
                                toRemove.Add(s);
                    }
                }
                foreach (string s in toRemove)
                    this.Remove(s);
            }
            public override void Add(string name, string value)
            {
                if (this[name] != null)
                    this[name] = value;
                else
                    base.Add(name, value);
            }
            public override string ToString()
            {
                return ToString(false);
            }
            public string ToString(bool includeUrl)
            {
                string[] parts = new string[this.Count];
                string[] keys = this.AllKeys;
                for (int i = 0; i < keys.Length; i++)
                    parts[i] = keys[i] + "=" +HttpContext.Current.Server.UrlEncode(this[keys[i]]);
                string url = String.Join("&", parts);
                if ((url != null || url != String.Empty) && !url.StartsWith("?"))
                    url = "?" + url;
                if (includeUrl)
                    url = this.document + url;
                return url;
            }
        }
    }


    Developer

  • lunes, 24 de septiembre de 2012 16:19
     
     

    ESto se que te puede ayudar un poco

    using System;

    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections.Specialized;
    using System.Collections;
    namespace encryp
    {
         public class QueryString : NameValueCollection
        {
            private string document;
            public string Document
            {
                get
                {
                    return document;
                }
            }
            public QueryString()
            {
            }
            public QueryString(NameValueCollection clone)
                : base(clone)
            {
            }
            public static QueryString FromCurrent()
            {
                return FromUrl(HttpContext.Current.Request.Url.AbsoluteUri);
            }
            public static QueryString FromUrl(string url)
            {
                string[] parts = url.Split("?".ToCharArray());
                QueryString qs = new QueryString();
                qs.document = parts[0];
                if (parts.Length == 1)
                    return qs;
                string[] keys = parts[1].Split("&".ToCharArray());
                foreach (string key in keys)
                {
                    string[] part = key.Split("=".ToCharArray());
                    if (part.Length == 1)
                        qs.Add(part[0], "");
                    qs.Add(part[0], part[1]);
                }
                return qs;
            }
            public void ClearAllExcept(string except)
            {
                ClearAllExcept(new string[] { except });
            }
            public void ClearAllExcept(string[] except)
            {
                ArrayList toRemove = new ArrayList();
                foreach (string s in this.AllKeys)
                {
                    foreach (string e in except)
                    {
                        if (s.ToLower() == e.ToLower())
                            if (!toRemove.Contains(s))
                                toRemove.Add(s);
                    }
                }
                foreach (string s in toRemove)
                    this.Remove(s);
            }
            public override void Add(string name, string value)
            {
                if (this[name] != null)
                    this[name] = value;
                else
                    base.Add(name, value);
            }
            public override string ToString()
            {
                return ToString(false);
            }
            public string ToString(bool includeUrl)
            {
                string[] parts = new string[this.Count];
                string[] keys = this.AllKeys;
                for (int i = 0; i < keys.Length; i++)
                    parts[i] = keys[i] + "=" +HttpContext.Current.Server.UrlEncode(this[keys[i]]);
                string url = String.Join("&", parts);
                if ((url != null || url != String.Empty) && !url.StartsWith("?"))
                    url = "?" + url;
                if (includeUrl)
                    url = this.document + url;
                return url;
            }

    Developer