Daha önce de bununla mücadele ettim.
İşte olup bitenler için bir benzetme ... Yeni bir ziyaretçi, Joe, siteye geliyor ve giriş sayfası üzerinden FormsAuthentication kullanarak giriş yapıyor. ASP.NET, Joe için yeni bir kimlik oluşturur ve ona bir çerez verir. Bu kurabiye evin anahtarı gibidir ve Joe bu anahtarla döndüğü sürece kilidi açabilir. Her ziyaretçiye yeni bir anahtar ve yeni bir kilit verilir.
Arandığında FormsAuthentication.SignOut()
, sistem Joe'ya anahtarı kaybetmesini söyler. Normalde, bu işe yarıyor, Joe artık anahtara sahip olmadığı için içeri giremiyor.
Joe hiç geri gelir ve Ancak, does o kayıp anahtara sahip, o geri let olduğunu!
Söyleyebileceğim kadarıyla, ASP.NET'e kapının kilidini değiştirmesini söylemenin bir yolu yok!
Bununla nasıl yaşayabileceğim, Joe'nun adını bir Oturum değişkeninde hatırlamaktır. Oturumu kapattığında, artık oturumdan vazgeçmediğim için Oturumu terk ediyorum. Daha sonra, izin verilip verilmediğini kontrol etmek için sadece kimliğini karşılaştırıyorum.Adı mevcut oturumun sahip olduğu şeyle karşılaştırıyorum ve eşleşmezlerse geçerli bir ziyaretçi değil.
Kısacası, bir web sitesi için, User.Identity.IsAuthenticated
Oturum değişkenlerinizi de kontrol etmeden güvenmeyin !