2

我正在为一个具有网络花园场景且无法将任何数据保存在会话/内存中的项目工作。asp.net 页面从 Appian(bpm 工具)打开,我们通过查询字符串传递 id。现在,客户要求我在阅读后隐藏查询字符串参数。但是,在这种情况下,登陆页面是http://a.aspx?id= '123' 并且在读取该值之后,我们必须重定向到 b.aspx 而不暴露 id(查询字符串)。请建议我一个合适的方法来实现这一点。我对此一无所知。

4

2 回答 2

4

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

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

string headerVal = HttpContext.Current.Request.Headers[key];
于 2014-03-04T19:12:14.270 回答
0

您可以在服务器端使用会话变量或使用 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>

在重定向使用 javascript 发布

function Redirect() {
     document.forms["IdForm"].submit();
}

无论发生重定向,您都必须使用此 js 脚本。

最后在后面的 b.aspx 代码上

HttpContext.Current.Request.Form["WhateverId"]
于 2014-03-04T19:16:25.790 回答