SessionStateStoreProviderBase Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir veri deposu için oturum durumu sağlayıcısının gerekli üyelerini tanımlar.
public ref class SessionStateStoreProviderBase abstract : System::Configuration::Provider::ProviderBase
public abstract class SessionStateStoreProviderBase : System.Configuration.Provider.ProviderBase
type SessionStateStoreProviderBase = class
inherit ProviderBase
Public MustInherit Class SessionStateStoreProviderBase
Inherits ProviderBase
- Devralma
Örnekler
Oturum durumu deposu sağlayıcısı uygulaması örneği için bkz. Session-State Deposu Sağlayıcısı Uygulama.
Aşağıdaki kod örneği, özel bir oturum durumu depolama sağlayıcısı kullanmak üzere yapılandırılmış bir ASP.NET uygulamasının Web.config dosyasını gösterir.
<configuration>
<connectionStrings>
<add name="OdbcSessionServices" connectionString="DSN=SessionState;" />
</connectionStrings>
<system.web>
<sessionState
mode="Custom"
customProvider="OdbcSessionProvider">
<providers>
<add name="OdbcSessionProvider"
type="Samples.AspNet.Session.OdbcSessionStateStore"
connectionStringName="OdbcSessionServices" />
</providers>
</sessionState>
</system.web>
</configuration>
Açıklamalar
ASP.NET oturum durumu, oturum durumu deposu sağlayıcısını kullanarak bir veri deposundan oturum verilerini okur ve yazar. Oturum durumu deposu sağlayıcısı, soyut sınıfı devralan SessionStateStoreProviderBase ve üyelerini veri deposuna özgü uygulamalarla geçersiz kılan bir sınıftır. Oturum durumu deposu sağlayıcısı, oturum değişkenlerinin ve zaman aşımı değeri gibi ilgili oturum bilgilerinin depolanması ve alınması için veri deposuyla iletişim kurmak üzere bir ASP.NET sayfasının işlenmesi sırasında sınıfı tarafından SessionStateModule çağrılır.
Her ASP.NET uygulama içindeki oturum verileri her SessionID özellik için ayrı olarak depolanır. ASP.NET uygulamalar oturum verilerini paylaşmaz.
Bu konudaki örnekte gösterildiği gibi, yapılandırma öğesinin Custommode
sessionState
özniteliğini olarak ve customProvider
özniteliğini özel sağlayıcının adı olarak ayarlayarak bir ASP.NET uygulaması için özel bir uygulama belirtebilirsiniz.SessionStateStoreProviderBase
Oturum Deposu Verilerini Kilitleme
ASP.NET uygulamalar eşzamanlı isteklere yanıt vermeyi desteklemek için çok iş parçacıklı olduğundan, eşzamanlı istekler aynı oturum bilgilerine erişmeye çalışabilir. Bir çerçeve kümesindeki birden çok çerçevenin tümünün aynı uygulamaya eriştiği bir senaryoyu düşünün. Çerçeve kümesindeki her çerçeve için ayrı istekler Web sunucusunda aynı anda farklı iş parçacıklarında yürütülebilir. Her çerçeve kaynağı erişim oturum durumu değişkenleri için ASP.NET sayfaları varsa, oturum deposuna eşzamanlı olarak erişen birden çok iş parçacığınız olabilir.
Oturum deposunda veri çakışmalarını ve beklenmeyen oturum durumu davranışını önlemek için ve SessionStateStoreProviderBase sınıfları, SessionStateModule bir ASP.NET sayfasının yürütülmesi süresi boyunca belirli bir oturum için oturum deposu öğesini özel olarak kilitleyen kilit işlevi içerir. Özniteliği olarak ReadOnly
işaretlenmiş olsa EnableSessionState bile, aynı uygulamadaki diğer ASP.NET sayfaları oturum deposuna yazabilir, bu nedenle depodan salt okunur oturum verileri isteği yine de kilitli verilerin serbest olmasını bekliyor olabilir.
yöntemi çağrısında GetItemExclusive , isteğin başındaki oturum deposu verilerinde bir kilit ayarlanır. İstek tamamlandığında, yöntemine yapılan çağrı SetAndReleaseItemExclusive sırasında kilit serbest bırakılır.
SessionStateModule nesnesi veya GetItem yöntemine GetItemExclusive yapılan çağrı sırasında kilitli oturum verileriyle karşılaşırsa, kilit serbest bırakılana veya oturum verilerinin kilitlendiği süre özelliğin değerini ExecutionTimeout aşana kadar yarım saniyelik aralıklarla oturum verilerini yeniden ister. Yürütme zaman aşımı aşılırsa nesne, SessionStateModule oturum deposu verilerini serbest etmek ve o anda oturum deposu verilerini istemek için yöntemini çağırır ReleaseItemExclusive .
Kilitli oturum deposu verileri, geçerli yanıt için yöntemine ReleaseItemExclusive yapılan çağrıdan önce ayrı bir iş parçacığında yöntemine SetAndReleaseItemExclusive yapılan çağrıyla serbest bırakılmış olabileceğinden, başka bir oturum tarafından yayımlanmış ve değiştirilmiş olan oturum durumu deposu verilerini ayarlamaya ve serbest bırakmaya yönelik bir girişimde bulunulabilir. Bu durumu GetItem önlemek için ve GetItemExclusive yöntemleri bir kilit tanımlayıcısı döndürür. Kilitli oturum deposu verilerini değiştirmek için her istekte bu kilit tanımlayıcısı bulunmalıdır. Oturum deposu verileri yalnızca veri deposundaki kilit tanımlayıcısı tarafından sağlanan kilit tanımlayıcısı SessionStateModuleile eşleşiyorsa değiştirilir.
Süresi Dolan Oturum Deposu Verilerini Silme
Abandon Yöntem belirli bir oturum için çağrıldığında, bu oturumun verileri yöntemi kullanılarak RemoveItem veri deposundan silinir; aksi takdirde, veriler oturum için gelecekteki istekleri sunucuya göndermek üzere oturum veri deposunda kalır. Süresi dolan oturum verilerini silmek uygulamaya aittir SessionStateStoreProviderBase .
Oluşturucular
SessionStateStoreProviderBase() |
SessionStateStoreProviderBase sınıfının yeni bir örneğini başlatır. |
Özellikler
Description |
Yönetim araçlarında veya diğer kullanıcı arabirimlerinde (UI) görüntülenmeye uygun kısa ve kolay bir açıklama alır. (Devralındığı yer: ProviderBase) |
Name |
Yapılandırma sırasında sağlayıcıya başvurmak için kullanılan kolay adı alır. (Devralındığı yer: ProviderBase) |
Yöntemler
CreateNewStoreData(HttpContext, Int32) |
Geçerli istek için kullanılacak yeni SessionStateStoreData bir nesne oluşturur. |
CreateUninitializedItem(HttpContext, String, Int32) |
Veri deposuna yeni bir oturum durumu öğesi ekler. |
Dispose() |
Uygulama tarafından SessionStateStoreProviderBase kullanılan tüm kaynakları serbest bırakır. |
EndRequest(HttpContext) |
bir isteğin SessionStateModule sonunda nesnesi tarafından çağrılır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) |
Oturum veri deposundan salt okunur oturum durumu verilerini döndürür. |
GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) |
Oturum veri deposundan salt okunur oturum durumu verilerini döndürür. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
Initialize(String, NameValueCollection) |
Yapılandırma oluşturucusunu başlatır. (Devralındığı yer: ProviderBase) |
InitializeRequest(HttpContext) |
İstek başına başlatma için nesnesi tarafından SessionStateModule çağrılır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ReleaseItemExclusive(HttpContext, String, Object) |
Oturum veri deposundaki bir öğenin kilidini serbest bırakır. |
RemoveItem(HttpContext, String, Object, SessionStateStoreData) |
Öğe verilerini oturum veri deposundan siler. |
ResetItemTimeout(HttpContext, String) |
Oturum veri deposundaki bir öğenin son kullanma tarihini ve saatini güncelleştirir. |
SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) |
Oturum durumu veri deposundaki oturum öğesi bilgilerini geçerli istekteki değerlerle güncelleştirir ve verilerdeki kilidi temizler. |
SetItemExpireCallback(SessionStateItemExpireCallback) |
Global.asax dosyasında tanımlanan olay için |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |