C# 重定向到页面隐藏查询字符串参数asp.net

C# 重定向到页面隐藏查询字符串参数asp.net,c#,asp.net,response.redirect,url-redirection,querystringparameter,C#,Asp.net,Response.redirect,Url Redirection,Querystringparameter,我正在为一个项目工作,该项目有web garden场景,无法在会话/内存中保存任何数据。 asp.net页面从Appian(bpm工具)打开,我们通过查询字符串传递id。 现在,客户机要求我在读取查询字符串参数后隐藏它。但是,在这种情况下,比如说,登录页是“123”,读取该值后,我们必须重定向到b.aspx,而不公开id(查询字符串)。 请给我一个合适的方法来实现这一点。我对此没有任何想法。您可以在标题中添加键/值对,它在查询字符串中不可见 HttpContext.Current.Respons

我正在为一个项目工作,该项目有web garden场景,无法在会话/内存中保存任何数据。 asp.net页面从Appian(bpm工具)打开,我们通过查询字符串传递id。 现在,客户机要求我在读取查询字符串参数后隐藏它。但是,在这种情况下,比如说,登录页是“123”,读取该值后,我们必须重定向到b.aspx,而不公开id(查询字符串)。
请给我一个合适的方法来实现这一点。我对此没有任何想法。

您可以在标题中添加键/值对,它在查询字符串中不可见

HttpContext.Current.Response.Headers.Add( key, value);


您可以在服务器端或http Post上使用会话变量,而不是GET

Session["id"] = id;
在加载b时,检索它

要使用Post,可以使用隐藏字段和表单

//You can set it like this
<form name='IdForm' action='b.aspx' method='post'>>
<asp:HiddenField id="WhateverId" runat="server" value='<%= Request.QueryString["whateverID"] %>' />
</form>
无论重定向发生在何处,都必须使用此js脚本

最后是关于b.aspx的代码隐藏

HttpContext.Current.Request.Form["WhateverId"]

你能给我举个例子吗(如果可能的话,甚至是一个粗略的例子)?在负载平衡的情况下,代码将部署在多个服务器上。因此,假设第一个请求被发送到服务器a,在那里你设置了密钥-值对,第二个请求将被发送到服务器B,在那里它将无法获得httpcontext中设置的值。在这种情况下会出现这种情况吗?@TMcKeown看起来你的观点被否定了。我会投票给你一个好答案+答案是好的。希望op也会感激它@TMCKOWN我是新来的,它说我需要有15个声誉才能投票(但你的建议很好,也很有效!代码将部署在负载平衡的服务器中,因此无法使用会话。但可以实现共享会话。你也可以通过用户会话而不是请求来实现服务器负载平衡。你的性能下降将几乎不存在,你将能够使用会话。这里唯一的缺点是t如果一台服务器出现故障,您的用户必须重新登录
function Redirect() {
     document.forms["IdForm"].submit();
}
HttpContext.Current.Request.Form["WhateverId"]