HttpSessionState.IsCookieless Özellik
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.
Oturum kimliğinin URL'ye eklendiğini veya BIR HTTP tanımlama bilgisinde depolandığını belirten bir değer alır.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Özellik Değeri
true
oturum URL'ye eklenmişse; aksi takdirde , false
.
Örnekler
Aşağıdaki kod örneği, Web.config dosyasında oturum özniteliğini true olarak ayarlar cookieless
.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Açıklamalar
ASP.NET, oturumları her tarayıcıyla benzersiz olarak tanımlar. Varsayılan olarak, bir oturumun benzersiz tanımlayıcısı tarayıcıda süresi dolmayan bir oturum tanımlama bilgisinde depolanır. sessionState yapılandırma öğesinde özniteliğini true
olarak ayarlayarak cookieless
oturum tanımlayıcılarının tanımlama bilgisinde depolanmayacaklarını belirtebilirsiniz.
Not
Uygulamanızın güvenliğini artırmak için uygulamanızın kullanıcıların oturumu kapatmasına izin vermesi ve bu noktada yöntemini çağırması Abandon gerekir. Bu, kullanıcının oturumunda depolanan özel verileri almak için URL'deki benzersiz tanımlayıcıyı kullanarak istenmeyen kaynak olasılığını azaltır.
ASP.NET, sayfanın URL'sine otomatik olarak benzersiz bir oturum kimliği ekleyerek tanımlama bilgisi olmayan oturum durumunu korur. Örneğin, aşağıdaki URL ASP.NET tarafından lit3py55t21z5v55vlm25s55 benzersiz oturum kimliğini içerecek şekilde değiştirilmiştir:
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET, her sayfayı tarayıcıya göndermeden hemen önce bağlantılara bir oturum kimliği değeri ekleyerek tüm istenen sayfalarda yer alan bağlantıları değiştirir. Oturum durumu, kullanıcı sitenin sağladığı bağlantıların yolunu izlediği sürece korunur. Ancak, kullanıcı aracısı bir URL'yi yeniden yazarsa oturum durumu örneği kaybolur.
Oturum kimliği, uygulama adını izleyen eğik çizgiden sonra ve kalan herhangi bir dosya veya sanal dizin tanımlayıcısının önüne URL'ye eklenir. Bu, ASP.NET isteği dahil etmeden önce uygulama adını çözümlemesine SessionStateModule olanak tanır.
Varsayılan olarak, tanımlama bilgisi olmayan oturumlarda kullanılan oturum tanımlayıcıları geri dönüştürülür. Yani süresi dolmuş bir oturum kimliğiyle istek yapılırsa, istekle birlikte sağlanan oturum kimliği kullanılarak yeni bir oturum başlatılır. Bu davranış, tanımlama bilgisi olmayan oturum kimliği içeren bir bağlantı bir arama altyapısı veya başka bir program aracılığıyla birden çok tarayıcıyla paylaşıldığında oturum verilerinin istenmeyen paylaşılmasıyla sonuçlanabilir. Oturum tanımlayıcılarının geri dönüştürülmesini devre dışı bırakarak oturum verilerinin birden çok istemci tarafından paylaşılma olasılığını azaltabilirsiniz. Bunu yapmak için sessionState yapılandırma öğesinin özniteliğini olarak true
ayarlayınregenerateExpiredSessionId
. Bu, süresi dolan bir oturum kimliğiyle tanımlama bilgisi olmayan bir oturum isteği yapıldığında yeni bir oturum kimliği oluşturulmasına neden olur. Süresi dolan oturum kimliğiyle yapılan istek HTTP POST
yöntemini kullanıyorsa, ASP.NET tarayıcının URL'de yeni oturum tanımlayıcısına sahip olduğundan emin olmak için bir yeniden yönlendirme gerçekleştirdiğinden regenerateExpiredSessionId
true
, gönderilen tüm verilerin olduğunda kaybolacağını unutmayın.
Not
özniteliğini regenerateExpiredSessionId
oturum verilerinin istenmeyen paylaşımı olasılığını azaltacak true
şekilde ayarlarken, değeri alıp SessionID sunucuya gönderilen isteklere ekleyerek başka bir kullanıcının oturumuna erişim elde eden istenmeyen bir kaynağa karşı koruma sağlamaz. Özel veya hassas bilgileri oturum durumunda depoluyorsanız, tarayıcı ile içeren sunucu SessionIDarasındaki tüm iletişimi şifrelemek için SSL kullanmanız önerilir.