2013-05-28 32 views
6

Tôi đang chuyển hướng đến một trang trong ứng dụng asp.net của mình bằng cách sử dụng nó chuyển một tham số trong url.Tham số truyền ASP.NET với response.redirect mà không hiển thị trong url

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

Có cách nào để gửi thực thi hoặc trực tiếp đến trang đó và chuyển paremeter mà không hiển thị nó trong url không? Cảm ơn.

+0

Bạn có thể sử dụng phiên –

+0

Bạn có thể nhận trợ giúp của Session cho OR đó, bạn có thể sử dụng tham số Encrypt/Decrypt querystring để thực hiện bảo mật đầy đủ. –

+1

@RameshRams Cảm ơn –

Trả lời

4

thông số url rất không an toàn. nó là một chuỗi đơn giản hiển thị cho tất cả mọi người. bạn nên mã hóa hoặc sử dụng các phiên. nếu đó là id bạn đang chuyển vào url, bạn có thể sử dụng uniqueidentifier làm id.

Tôi nghĩ cách tốt nhất và dễ nhất là gửi qua phiên.

3

Bạn không thể ẩn giá trị được gửi trong chuỗi truy vấn, nhưng bạn có thể mã hóa các giá trị, nếu bạn muốn chúng không thể đọc được. HOẶC Thay vì chuyển hướng đơn giản, bạn sẽ có cái nhìn cho tùy chọn khác để điều hướng đến trang tiếp theo

How to: Pass Values Between ASP.NET Web Pages

0

nếu bạn trang web đã được phân phối trong nhiều máy tính, bạn nên sử dụng cookie để làm mất hiệu lực phiên bỏ lỡ

ghi Cookie

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

đọc cookie

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

Cookie không đáng tin cậy và 'người dùng' có thể tắt chúng. – GlennG

Các vấn đề liên quan