The article How to hide URL query information in ASP.NET in C# describes a class named EncryptedQueryString which is used in the next example to illustrate how you can use it in your projects. You have to build two web pages:

C# in Depth, 3rd EditionBest VPN app

– The first one (QueryStringSender) can contain a text box for entering information and a button which is used to send the encrypted query string to the receiving page.

– The second one (QueryStringReceiver) deserializes the query string passed in through the data query string parameter

QueryStringSender <form id=”Page 1″ runat=”server”>


Enter some data here: <asp:TextBox runat=”server” ID=”MyData” />

<br />

<br />

<asp:Button ID=”SendCommand” runat=”server” Text=”Send Info” OnClick=”SendCommand_Click” />


 When the user clicks the SendCommand button, the page sends the encrypted query string to the receiving page, as follows: 
protected void SendCommand_Click(object sender, EventArgs e){

EncryptedQueryString QueryString = new EncryptedQueryString();

QueryString.Add(“MyData”, MyData.Text);

QueryString.Add(“MyTime”, DateTime.Now.ToLongTimeString());

QueryString.Add(“MyDate”, DateTime.Now.ToLongDateString());

Response.Redirect(“QueryStringReceiver.aspx?data=” + QueryString.ToString());

}QueryStringReceiver<form id=”Page 2″ runat=”server”>


<h2>Information retrieved:</h2>

<asp:Label runat=”server” ID=”QueryStringLabel” />


protected void Page_Load(object sender, EventArgs e){

// Deserialize the encrypted query string

EncryptedQueryString QueryString = new EncryptedQueryString(Request.QueryString[“data”]);


// Write information to the screen

StringBuilder Info = new StringBuilder();

foreach (String key in QueryString.Keys)


Info.AppendFormat(“{0} = {1}<br>”, key, QueryString[key]);


QueryStringLabel.Text = Info.ToString();