ASP.NET传递带有response.redirect的参数,而不显示在url中

时间:2013-05-28 07:13:30

标签: asp.net redirect parameters response

我正在重定向到我的asp.net应用程序中的一个页面,使用该页面传递url中的参数。

 HttpApplication app = (HttpApplication) sender;
 HttpResponse response = app.Context.Response;
 app.Response.Redirect("~/auth/SignOn.aspx?capath=" + capath);

有没有办法发送执行或直接到该页面并传递参数而不在网址中显示?感谢。

3 个答案:

答案 0 :(得分:4)

url参数非常不安全。它是一个简单的字符串,每个人都可以看到。你应该加密它或使用会话。如果它是您传入网址的ID,则可以使用uniqueidentifier作为ID。

我认为最好和最简单的方法是通过Sessions发送。

答案 1 :(得分:3)

无法隐藏在查询字符串中发送的值,但如果您希望它们不可读,则可以加密这些值。或者不是简单的重定向,而是寻找导航到下一页的其他选项

How to: Pass Values Between ASP.NET Web Pages

答案 2 :(得分:0)

如果您的网站分布在很多电脑上, 你应该使用cookie来取消会话错过

写cookie

HttpCookie testCookie = new HttpCookie("capath");
    testCookie.Value = HttpUtility.UrlEncode(capath);
    Response.Cookies.Add(testCookie);

读取cookie

if (Request.Cookies["capath"] != null)
    {
        HttpCookie getCookie = Request.Cookies.Get("capath");
}