2013-05-28 366 views
6

我正在重定向到我的asp.net应用程序中的一个页面,使用它传递url中的一个参数。ASP.NET传递参数response.redirect而不显示在url中

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

有没有办法送执行或直接到该页面并通过paremeter不显示在url中吗?谢谢。

+0

您可以使用会话 – 2013-05-28 07:17:17

+0

你可以为Session获得帮助,或者你可以使用Encrypt/Decrypt querystring参数来执行完全的安全。 –

+1

@RameshRams谢谢 –

回答

4

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

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

3

不能在查询字符串中发送隐藏值,但如果您希望它们不可读,则可以加密这些值。或替代简单的重定向,你将不得不找其他选项导航到下一个页面

How to: Pass Values Between ASP.NET Web Pages

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"); 
} 
+0

饼干不可靠,'用户'可以关闭它们。 – GlennG