2011-02-11 11 views
5

Sunucuda QueryString'i yönlendirme olmadan değiştiremeyeceğinizi düşündüm.Neden Request.QueryString okuyor?

Ama bu kod benim için * çalışır:

Request.QueryString edit

Çok şaşırıyorum. Yani burada

bu ilgili sorularım şunlardır:

  1. Neden salt okunur Request.QueryString edilir?
  2. Bu kod/kesmek neden çalışıyor?
  3. Düzenlemeyi tamamladıktan hemen sonra, hem hatalı hatalar hem de beklenmedik davranışlarla ilgili olarak ve kodun bakımını yapmak ve anlamanızla ilgili olarak okuyucuyu değiştirirseniz ne kadar güvenlidir?
  4. Olay döngüsünde, PageLoad ve OnPageRender'ı kullanıyorsanız, bu çılgın düzenlemeyi yapmak en mantıklı şey olabilir mi?

* Diğer ayrıntılar:

Ben sekmeler halinde gruplandırılmış öğeleri içeren bir sayfa var. Her sekme bir asp: LinkButton

Doğrudan belirli bir sekmeye bağlanabilmek istiyorum. Bunu bir QueryString parametresiyle 'tab = tabName' ile yapıyorum. İşe yarıyor. Ama sonra yeni bir sekmeyi tıklattığımda, querystring hala Url'de ve böylece Querystring'de belirtilen sekme, tıklattığım değil etkinleşir.

Request.QueryString edit kullanarak bu gerçekleşmez. Sonra benim çözümüm 'çalışır'.

Şimdiden teşekkürler.

+0

sayfanız için işaretlemeyi gönderebilir miyim, ben bulmak ben çerçeve çarptığımızı olduğumda Ben genellikle yanlış ya da aptalca ya da her ikisi de bir şey yapıyor olduğumu. – Lazarus

+0

Benim kod biraz bu yüzden bu soru için biraz kırpmayın sürece bir şey değil bu yüzden .Bu ipucu için teşekkürler – Skuli

cevap

10

QueryString özelliği, tek bir istekte değiştirilemediği için salt okunurdur. Açıkçası tarayıcı sadece bir dizeyle yalnızca bir istek gönderir, böylece sadece bir koleksiyon oluşturulur. Hack, normalde değiştiremediğiniz şeyleri değiştirmek için yansıma (yani kodu ve belleği yönetir) kullanır. Bu kesmek, kapsülleme ve QueryString özelliğinin tasarımını keser. Kullanmamalısın. Tasarım açısından bir anlam ifade etmiyor. Sorgunuz değişmiyor, neden onu temsil eden nesneyi değiştirsin? Sadece tarayıcı yeni sorgu dizesi gönderebilir, böylece tarayıcının gönderdiği şeyle ilgili olarak kendi kodunuza uzanırsınız.

Sekmelerin URL’yi kullanmasını istiyorsanız, yalnızca LinkButton yerine Köprüler kullanın.

+0

Cevabınız için teşekkürler.Sonraki geri gönderimlerdeki QueryString parametresinden nasıl kurtulurum? – Skuli

+0

Response.Redirect. Ancak sekmelerin bir gönderi yapmasını istediğinizden şüpheliyim. Durum böyle olabilir ama genellikle bunu yapmanın en iyi yolu bu değildir. – Stilgar

2

Okumayı hatırladığım kadarıyla, bu tüm tarayıcıların uygun olduğu bir güvenlik standardıdır. Bunun ana amacı, birisinin www.MyLameWarcraftPhishingSite.com web sitesine sahip olabileceği e-dolandırıcılık saldırılarını durdurmaktır. Birisi sayfaya isabet ederse, URL'yi www.blizzard.com gibi görünmesi için yeniden yazmanız yeterlidir. aslında yönlendirme

mmm, son yazılan Feb 11 oldu -.. Bu mesaj yazabilmek onun ok umut

İlgili konular