Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 17081|Yanıt: 2

[ASP.NET] HttpContext.Current.Items

[Bağlantıyı kopyala]
Yayınlandı 11.02.2018 10:42:10 | | | |

HTTP, durumsuz bir protokoldür. Her istek bağımsızdır ve yürütülmesi ile sonuçları önceki talep ve sonraki talekle doğrudan ilgili değildir; önceki talebe verilen yanıttan doğrudan etkilenmez ve sonraki talebe verilen yanıtı doğrudan etkilemez.

Aslında, sistemimiz kullanıcıların aynı verileri (durumları) istemci tarayıcı ile sunucu arasında birden fazla istek paylaşmasını destekler; örneğin kullanıcı giriş hesabı bilgileri. Bu nedenle, ASP.NET durumu yönetmek için birçok değişken sağlar: uygulama durumu, oturum durumu, görünüm durumu vb.

HttpContext nesnesi yalnızca tek bir http isteği içindir.Bu sınıfın özellikleri arasında Talep Nesneleri, Yanıt nesneleri, Oturum nesneleri vb. de bulunur. Bu, anahtar-değer biçiminde bir hash tablosu nesnesi içeren HttpContext sınıfının Items koleksiyonudur.

Öncelikle, yalnızca tek bir kullanıcı isteği üzerine çalışan HttpContext.Current.Items'ın amacına bakalım (HttpContext.Current.Items tek bir HTTPRequest için geçerlidir). Bu talep tamamlandığında, sunucu bilgileri tarayıcıya geri gönderildiğinde öğe koleksiyonu kaybolur. Oturum nesnesi kullanıcının oturumu içindir; yani, birden fazla kullanıcı isteği üzerine hareket eder ve oturum süresi dolduğunda bilgi kaybolur.

HttpContext.Current.Items bu kadar kısa bir yaşam döngüsü olduğuna göre, hangi koşullarda kullanılabilir? Burada, her kullanıcı isteği HTTP çalışma zamanı boru hattı HttpModule, HTTPHandler üzerinden geçtiği için HttpContext.Current.Items (HttpContext.Current.Items) verilerini paylaşırken kullanılabileceği belirtilmiştir. IHttpMoudle yöntemini uyguladığınızda, kullanıcı isteğine HttpMoudle üzerinden bilgi ilettiğinizde. Farklı istek sayfalarında ve farklı HttpModule'lerde veri aktarmak için HttpContext.Current.Items kullanabilirsiniz, ancak istek sona erdiğinde ve veri yayınlandıktan sonra, bu koleksiyondaki veriler kendi başına kaybolur. Aşağıdaki şekilde gösterildiği gibi:




Ayrıca, sunucu sayfası atladığında (Server.Execute/Server.Transfer), HttpContext.Current.Items kullanarak iki form arasında veri aktarabiliriz.
Elbette, Server.Transfer'i Response.Redirect olarak değiştirirseniz, yeni sayfada HttpContext.Current.Items içindeki verileri alamazsınız çünkü bu farklı bir Http isteğidir. System.NullReferenceException: Nesne referansı, nesnenin örneğine ayarlanmamıştır.





Önceki:Ethereum ağına dayalı sanal para çıkarmak için 20 dakika
Önümüzdeki:Akıllı terminallerin kullanım senaryoları ve önemi üzerine düşünmek
 Ev sahibi| Yayınlandı 30.06.2023 20:35:38 |
ASP.NET ThreadStatic, CallContext ve HttpContext arasındaki fark
https://www.itsvse.com/thread-10620-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com