मैं इससे पहले भी संघर्ष कर चुका हूं।
यहाँ जो चल रहा है, उसके लिए एक सादृश्य है ... एक नया आगंतुक, जो, साइट पर आता है और लॉग इन पेज के माध्यम से लॉग इन करता है। ASP.NET जो के लिए एक नई पहचान बनाता है, और उसे एक कुकी देता है। वह कुकी घर की चाबी की तरह है, और जब तक जो उस चाबी के साथ लौटता है, वह ताला खोल सकता है। प्रत्येक आगंतुक को एक नई कुंजी और उपयोग करने के लिए एक नया लॉक दिया जाता है।
कब FormsAuthentication.SignOut() कहा जाता है, तो सिस्टम कुंजी को खोने के लिए जो बताता है। आम तौर पर, यह काम करता है, क्योंकि जो के पास अब चाबी नहीं है, वह अंदर नहीं जा सकता।
हालांकि, अगर जो कभी वापस आता है, और करता है कि खो कुंजी है, वह वापस जाने है!
मैं जो बता सकता हूं, उसमें दरवाजे पर ताला बदलने के लिए ASP.NET बताने का कोई तरीका नहीं है!
जिस तरह से मैं इसके साथ रह सकता हूं वह है एक सत्र चर में जो का नाम याद रखना। जब वह बाहर निकलता है, तो मैं सत्र को छोड़ देता हूं, इसलिए मेरा नाम अब नहीं है। बाद में, यह जाँचने के लिए कि क्या उसे अनुमति दी गई है, मैं बस उसकी पहचान की तुलना करता हूँ। वर्तमान सत्र में क्या है, और यदि वे मेल नहीं खाते हैं, तो वह एक वैध आगंतुक नहीं है।
संक्षेप में, एक वेब साइट के लिए, User.Identity.IsAuthenticatedअपने सत्र चर की जाँच किए बिना भी भरोसा न करें!