encrypt and decrypt query string

Discussion in 'ASP.NET' started by hanusoftware, Jun 6, 2007.

  1. hanusoftware

    hanusoftware New Member

    Joined:
    Jun 6, 2007
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    0
    Home Page:
    http://www.hanusoftware.com
    This code has been used to encrypt and decrypt query string .No matter what the length of the url is ,this code will encrypt the key and the value the query string into 25 digit

    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections.Specialized;
    using System.Collections;
    using System.Web;
    
    
    
    namespace BusinessLayer
    {
        public class QueryString : NameValueCollection
        {
            private string document;
            public string Document
            {
                get
                {
                    return document;
                }
            }
            public QueryString()
            {
            }
            public QueryString(NameValueCollection clone)
                : base(clone)
            {
    
            }
    
            //this method has been used to get the current URL of the page 
            public static QueryString FromCurrent()
            {
                //returns the current url from the address bar
                return FromUrl (HttpContext.Current.Request.Url.AbsoluteUri) ;
            }
    
            /// <summary>
            /// This method has been used to divide the Address URl into characters chunks 
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static QueryString FromUrl(string url)
            {
                //it breaks the address URL in array with separator of ? mark
                //this line breaks the Querystring and page 
                string[] parts = url.Split("?".ToCharArray());
                //instantiate the class object
                QueryString qs = new QueryString();
                //assign the page address to the variable
                qs.document = parts[0];
                //if there is any data in array
                if (parts.Length == 1)
                    return qs;
                //breaks the QueryString into characters chunks with separator mark &
                string[] keys = parts[1].Split("&".ToCharArray());
                foreach (string key in keys)
                {
                    //again breaks into chunks by + mark
                    string[] part = key.Split("=".ToCharArray());
                    if (part.Length == 1)
                        qs.Add(part[0], "");
                    //adds the QueryString key and value pair to the assigned variable
                    qs.Add(part[0], part[1]);
                }
                return qs;
    
    
            }
            /// <summary>
            /// This method clear all exceptions in the passed string
            /// </summary>
            /// <param name="except"></param>
            public void ClearAllExcept(string except)
            {
                //calls the method to clear except 
                ClearAllExcept(new string[] { except });
    
            }
            /// <summary>
            /// this is the usual method which has to call clear all exceptions
            /// </summary>
            /// <param name="except"></param>
            public void ClearAllExcept(string[] except)
            {
                //take an arrayList 
                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);
            }
            /// <summary>
            /// this method adds the key value pairs in QueryString of the URL
            /// </summary>
            /// <param name="name"></param>
            /// <param name="value"></param>
            public override void Add(string name, string value)
            {
                //checks nullability of the name 
                if (this[name] != null)
                    //if not null then assign value to it
                    this[name] = value;
    
                else
    
                    base.Add(name, value);
    
            }
    
    
    
            public override string ToString()
            {
    
                return ToString(false);
    
            }
    
    
            /// <summary>
            /// this ethod has been used to join all the characters array to the URL 
            /// </summary>
            /// <param name="includeUrl"></param>
            /// <returns></returns>
            public string ToString(bool includeUrl)
            {
    
                string[] parts = new string[this.Count];
    
                string[] keys = this.AllKeys;
                //for each keys breaks the URL into chunks
                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;
    
            }
    
        }
    }
     
  2. pradeep

    pradeep Team Leader

    Joined:
    Apr 4, 2005
    Messages:
    1,645
    Likes Received:
    87
    Trophy Points:
    0
    Occupation:
    Programmer
    Location:
    Kolkata, India
    Home Page:
    http://blog.pradeep.net.in
    You should have provided an example, which would have used it much easier to understand!
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice