SORU
8 Temmuz 2010, PERŞEMBE


En iyi Sayfaları Arasında Veri iletimi için Uygulamalar

Sorun

Biz bu yığın yeniden kullanım projeleri arasında, sayfalar arasında geçen veriler seans için biraz fazla küçük bir veri atıyoruz. Bu, yeniden saldırılara müdahale ve benzeri engeller çünkü teoride iyiydi, ama çözer gibi pek çok sorun yaratır.

Oturum kaybı kendisi olmasına rağmen bir konudurçoğunluklauygulama Oturum Durumu Sunucusu (veya SQL Server kullanarak) ile işlenmiş. Daha da önemlisi, bu çok ince yapmak için geri düğmesi düzgün çalışır, ve bu da ekstra iş yaratmak bir durum olduğu bir kullanıcı olabilir, diyelim ki, aç aynı ekranda üç sekme için iş farklı kayıtları.

Ve bu sadece buzdağının görünen kısmı.

Bu sorunların çoğu için geçici çözümler vardır, ama ben eziyet olarak, tüm bu sürtünme bana sayfaları oturumu kullanarak arasında veri iletimi yanlış yön hissi verir.

Ne gerçekten yapmak istiyorum burada bir iyi uygulama benim alışveriş yapabilirsiniz kullanmak her zaman için geçen veriler arasındaki sayfaları, ve daha sonra, yeni uygulamalar, yerine anahtar parçaları bizim yığını şu anda güveniyor Oturum.

Ayrıca eğer nihai çözüm demirbaş tesisat kod dağlar neden olmasa iyi olurdu.

Önerilen Çözüm

Oturum

Yukarıdaki gibi, ağır Oturumda eğilerek bahsettigörünüyoriyi bir fikir gibi, ama geri tuşuna bas sonları ve diğer bazı sorunlara neden olur.

Tüm problemleri çözmek için bir yol olabilir, ama ekstra bir sürü iş gibi görünüyor.

Oturum kullanma konusunda çok iyi olan bir şeye müdahale sadece bir sorun değildir aslında. Şifresiz sorgu dizesi ile her geçen karşılaştırıldığında, çok daha az nöbet kod yazma.

Sayfalar Arası Nakil

Gerçeği ancak bu seçeneği kabul ettim. Sıkıca PreviousPage yapmaya başlarsak sayfalar ... birleştiğinde nasıl bir problem var.(Eğer şimdiye kadar belki de bir kontrol SomeTextBox adı olmayan başka bir sayfadan Bu sayfa için almak istiyorum eğer bakım bir sorun gibi görünüyor."") SomeTextBox, FindControl

Başka şekillerde de sınırlı gibi görünüyor. Belki bir bağlantı yoluyla sayfasına gitmek için, örneğin istiyorum.

Sorgu dizesi

Şu anda eski günlerdeki gibi bu strateji doğru eğilerek değilim. Ama benim sorgu dizesi zor kurcalamak için şifreli olmak istiyorum, ve tekrar atak sorunu işlemek için de istiyorum.

Rolla dan 4 adam, 0**.

Ancak, tüm bu önemser bir HTTP oluşturmak mümkün olmalıdır ve tüm şifreleme sosis yapma sayfadan kaldırır. Emin yeterli, Mad Kristenson has an article where he released one. Ancak, bu açıklamaları son derece yaygın senaryolar ile sorunları varmış gibi ses olun.

Diğer Seçenekleri

Elbette bu seçenekleri exaustive bir görünüm değil, ana seçenekleri değerlendiriyorum. This link daha kapsamlı bir listesini içerir. Olanları Tanımlama bilgileri ve Önbellek veri iletme amaç için uygun değil sayfalar arasında bahsetmedi.

Yaklaşıyor...

Nasıl sayfalar arasında veri iletme sorunla başa çıkıyor? Gizli sorunlar etrafında çalışmak zorunda, ne yaptığını ve hepsini kusursuz bir şekilde çözen bu çevresinde önceden var olan herhangi bir alet var mı?Yapıntamamen mutlu olduğun bir çözüm varmış gibi hissediyor musun?

Şimdiden teşekkürler!

Güncelleme:Her ihtimale karşı, sayfaları arasında geçen veriler' bahsediyorum, örneğin, bir CustomerSearch gelen Kimliği anahtarı geçiş.tarafından yeterince açık olmaya çalışmıyorum Müşteriler için sayfa SEO.Müşteri açıldı ve düzenleme olacak SEO oluşabilir.

CEVAP
12 Temmuz 2010, PAZARTESİ


İlk olarak, ile ilgili sorunlar devlet-daha az bir ortamda işleme ile ilgilidir. Yaşadığınız mücadeleleri yeni bir şey değil ve muhtemelen web geliştirme windows geliştirme veya bir yürütülebilir gelişimi daha zor kılan şeylerden biridir.

Web geliştirme ile ilgili olarak, beş seçenek, bildiğim kadarıyla ben farkında değilim gibi, birbirleri ile birlikte kullanılabilir olan taşıma kullanıcıya özel durumu var. Kimse çözüm her zaman işe yarar olduğunu göreceksiniz. Bunun yerine, her bir çözüm kullanmak için zaman belirlemek gerekir:

  • Sorgu dizesi Sorgu dizeleri veri (birincil anahtar değerleri gibi) veya devlet değerleri işaretçiler geçmek için iyi. Kendileri tarafından sorgu dizeleri eğer tekrar çünkü şifreli bile güvenli olarak kabul edilmemelidir. Buna ek olarak, bazı tarayıcılar url uzunluğu sınırı var. Ancak, sorgu dizeleri sık ve insanlara e-postayla olabilir gibi bazı avantajları var ve eğer başka bir şey kullanılmadığı takdirde, doğal olarak, vatansız.

  • Çerezler - Çerez belirli bir kullanıcı için bir bilgi çok küçük miktarlarda saklamak için iyidir. Sorunu tanımlama da sonra kurabiye özel veri yerleştirme ile dikkatli olmak zorunda, bu yüzden sadece verileri kesecek bir boyut sınırlaması var. Buna ek olarak, kullanıcıların çerezleri öldürmek veya onların kullandığı standart Oturum kullanımı önlemek olabilir) dur. Sorgu dizeleri benzer, çerezleri verileri küçük olduğu sürece verinin kendisi için daha iyi,, veri işaretçileri için IMO.

  • Form veri Formu veri bilgi biraz ancak post kat maliyeti ve bazı durumlarda yeniden yüklemek zaman alabilir. 'S görünüm durumu gizli form değişkenleri bilgileri tutmak için kullanır. ASP.NET Sayfaları arasında geçen veriler görünüm durumu gibi bir şey kullanarak daha iyi geri düğmesi ile çalışma avantajı vardır ama kolay bir kullanıcı deneyimi yavaşlatan devasa sayfaları oluşturabilirsiniz. Genel olarak, ASP.NET model cross page posting mümkün olsa da () çalışmıyor ama bunun yerine yazılarda aynı sayfaya ve bir sonraki sayfaya geçerek çalışır.

  • Oturum - Oturum genel ayarlar için Kullanıcı ilerliyor süreci ile ilgili bilgi almak için ya da iyi. Sunucu belleği pahasına oturum bilgileri biraz deposu veya veritabanlarından kez yükleyebilirsiniz. Kavramsal olarak, Oturum ya da hafızasını devlet sunucusundan gelen kullanıcı için veri tüm wad yükleyerek tek seferde çalışıyor. Eğer veri çok büyük bir dizi varsa muhtemelen oturum içine koymak istemiyorum anlamına gelir. Oturum kullanıcı aslında başarmaya çalıştığı şey arasında bir denge kurulmalıdır bazı geri düğmesi sorunlar yaratabilir. Genel olarak geri düğmesi web geliştirici ve yıkım olabilir.

  • Veritabanı - son çözüm yine diğerleri ile birlikte kullanılabilir) öğesinin durumunu gösteren bir sütun ile uygun şema veritabanı bilgileri saklamak. Eğer bir düzen yaratma aldığına örneğin, bir "" bu gerçek bir emir olup olmadığını belirler sütun ya da değil. devlet ile Sipariş tablosundaki sipariş saklayabilirsiniz Sorgu dize veya Oturum amacıyla tanımlayıcı depolamak. Web sitesi-cekti devam etmek için write data tablo, güncelleme gibi çeşitli bölümler ve alt öğeleri kadar sonunda kullanıcı mümkün bildirin onlar yapmış tarikatın devlet işaretli olduğu bir gerçek düzen. Bu "" işlem yapmamışlar. gerçek öğeleri ayırt etmek için gereken raporlar ve sorgular karmaşık hale getirebilir

Eşyaları daha sonra bağlantı anılan bir Uygulama Önbellek. Uygulama geniş olduğu için bu kullanıcıya özel olmak istemezdim. (Belli ki ayakkabı boynuzlu kullanıcıya özel olmak olabilir ama bu da) tavsiye etmem. Hiç bir işleyici veya modül geçirmeden dışında HttpContext veri depolama ile oynadım ama yukarıda bahsedilen çözümler daha farklı olduğunu şüpheci olurdum.

Genel olarak, hepsine hükmedecek tek bir çözüm yoktur. En iyi yaklaşım, kullanıcı herhangi bir yerden bu sayfa başka bir sayfaya bir bağlantı kullanarak var varsayarsak (farklı olarak) için gidilen gelebilecek her sayfada varsayalım. Eğer bunu yaparsanız, düğme sorunları ele almak için daha kolay hale geri hala bir acı olsa da). Benim gelişme ihtiyacı için çağırdığında son çözüm ilk dört yoğun ve durum çare olarak kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Creavite

    Creavite

    8 Mart 2009
  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • Project Mooncircle

    Project Moon

    6 Aralık 2009