2013-05-28 409 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