Query_string
(Berikut adalah teks dari bagian tertaut dari entri Wikipedia.)
Struktur
URL tipikal yang berisi string kueri adalah sebagai berikut:
http://server/path/program?query_string
Ketika server menerima permintaan untuk halaman seperti itu, ia menjalankan program (jika dikonfigurasi untuk melakukannya), meneruskan query_string tidak berubah ke program. Tanda tanya digunakan sebagai pemisah dan bukan bagian dari string kueri.
Tautan di halaman web mungkin memiliki URL yang berisi string kueri, namun, HTML mendefinisikan tiga cara browser web dapat menghasilkan string kueri:
- formulir web melalui ... elemen
- peta gambar sisi server melalui atribut ismap pada elemen dengan konstruksi
- pencarian yang diindeks melalui elemen yang sekarang tidak digunakan lagi
Formulir web
Penggunaan utama string kueri adalah untuk memuat konten formulir HTML, juga dikenal sebagai formulir web. Secara khusus, ketika formulir yang berisi bidang bidang1, bidang2, bidang3 dikirimkan, konten bidang dikodekan sebagai string kueri sebagai berikut:
field1=value1&field2=value2&field3=value3...
- String kueri terdiri dari serangkaian pasangan nilai bidang.
- Dalam setiap pasangan, nama dan nilai bidang dipisahkan oleh tanda sama dengan. Tanda sama dengan dapat dihilangkan jika nilainya berupa string kosong.
- Rangkaian pasangan dipisahkan oleh ampersand, '&' (atau titik koma, ';' untuk URL yang disematkan dalam HTML dan tidak dibuat oleh ...; lihat di bawah). Meskipun tidak ada standar yang pasti, sebagian besar kerangka kerja web memungkinkan beberapa nilai dikaitkan dengan satu bidang:
field1=value1&field1=value2&field1=value3...
Untuk setiap bidang formulir, string kueri berisi pasangan bidang = nilai. Formulir web mungkin menyertakan bidang yang tidak terlihat oleh pengguna; bidang-bidang ini disertakan dalam string kueri saat formulir dikirimkan
Konvensi ini adalah rekomendasi W3C. W3C merekomendasikan bahwa semua server web mendukung pemisah titik koma selain ampersand pemisah [6] untuk mengizinkan aplikasi / x-www-form-urlencoded query string dalam URL dalam dokumen HTML tanpa harus keluar dari ampersand entitas.
Secara teknis, konten formulir hanya dikodekan sebagai string kueri saat metode pengiriman formulir adalah GET. Pengkodean yang sama digunakan secara default saat metode pengiriman adalah POST, tetapi hasilnya tidak dikirim sebagai string kueri, yaitu tidak ditambahkan ke URL tindakan formulir. Sebaliknya, string dikirim sebagai badan permintaan HTTP.
Saya menggunakan AbsoluteUri dan Anda bisa mendapatkannya seperti ini:
string myURI = Request.Url.AbsoluteUri; if (!WebSecurity.IsAuthenticated) { Response.Redirect("~/Login?returnUrl=" + Request.Url.AbsoluteUri );
Kemudian setelah Anda login:
var returnUrl = Request.QueryString["returnUrl"]; if(WebSecurity.Login(username,password,true)){ Context.RedirectLocal(returnUrl);
Ini bekerja dengan baik untuk saya.
sumber