क्लाइंट की कुकी कैसे हटाएं?


नमस्कार, कुकीज़ के बारे में कुछ ऐसा है जो मुझे समझ में नहीं आता है। जब कोई कुकी बनाई जाती है, तो यह क्लाइंट के ब्राउज़र पर बनाई जाती है, मैं ब्राउज़र पर कुकीज़ में बनाई गई कुकी देख सकता हूं। अब 2 उपयोगकर्ताओं ने अलग-अलग समय पर लॉग इन किया है मुझे याद रखें को चिह्नित करते हुए, उन दोनों के ब्राउज़र पर 2 कुकीज़ बनाई गईं। जब कोई उपयोगकर्ता लॉग आउट करता है, हालांकि मैं कुकी को भौतिक रूप से हटा नहीं सकता, यह कहता है कि मैं केवल समाप्त तिथि को अपडेट कर सकता हूं। मान लीजिए मैंने यह किया, यह वह जगह है जहां मैं समझ नहीं पा रहा हूं, जब मैं लॉग आउट करता हूं, तो मैं वहां कुकी नाम का चयन करता हूं और इसे हटा देता हूं या तारीख रीसेट करता हूं,

लेकिन सर्वर को कैसे पता चलता है कि यह प्रक्रिया किस क्लाइंट की है? क्योंकि जब मैं इसे बनाता हूं, तो मैं केवल एक सामान्य कुकी नाम देता हूं, संक्षेप में, एक उपयोगकर्ता-विशिष्ट cookie_client_id नहीं बनाया जाता है, जब मैं कुकी हटाता हूं, क्योंकि मैं सर्वर पर ऐसा करता हूं, तो यह कुकी विलोपन अन्य उपयोगकर्ताओं के लिए नहीं होगा? संक्षेप में, मेरा प्रश्न यह है कि यह कैसे पता चलता है कि जब कोई उपयोगकर्ता लॉग आउट करता है तो केवल x उपयोगकर्ता की कुकी हटा दी जानी चाहिए? धन्यवाद

मैंने क्या प्रयास किया है:

मैंने सर्वर पर कुकी को हटाने का प्रयास किया लेकिन मैं असफल रहा।

समाधान 1

सर्वर नहीं करता. ग्राहक करता है.

ब्राउज़र द्वारा कुकीज़ को वर्तमान (विंडोज, लिनक्स, एंड्रॉइड या जो भी) उपयोगकर्ता के तहत क्लाइंट मशीन पर संग्रहीत किया जाता है – और चूंकि मशीन पर प्रत्येक उपयोगकर्ता के पास अलग-अलग डेटा क्षेत्र होते हैं, इसलिए ब्राउज़र इसे वर्तमान उपयोगकर्ता डेटा में संग्रहीत करता है (इसमें ऐसा नहीं है) किसी अन्य तक पहुंच)।

इसलिए जब सर्वर कुकीज़ तक पहुंचता है, तो यह उन्हें ब्राउज़र से अनुरोध करता है, जो सही जानकारी लाने के लिए वर्तमान उपयोगकर्ता डेटा तक पहुंचता है।

सर्वर उपयोगकर्ता अलग-अलग होते हैं: वे एक “कंस्ट्रक्ट” होते हैं जो ब्राउज़र कुकीज़ से जानकारी का उपयोग करके यह तय करता है कि किस सर्वर उपयोगकर्ता को आपकी साइट पर लॉग इन करना है। जब वह उपयोगकर्ता लॉग आउट करता है, तो वे आपकी साइट से लॉग आउट हो जाते हैं, जो कुकीज़ को प्रभावित नहीं करता है जब तक कि आपका साइट कोड विशेष रूप से नया कुकी डेटा नहीं लिखता है।

समाधान 2

I know that cookies are stored on the browser in the client's user profile, the server already writes it into a cookie on the browser. My question is that when the client wants to log out, it notifies the server, but this logout process takes place on the server side, for example 


<pre lang="C#">public ActionResult Logout()
        {
        
            Session.Clear();
            Session.Abandon();
            Session.RemoveAll();

            FormsAuthentication.SignOut();
            HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
            cookie1.Expires = DateTime.Now.AddYears(-1);
            Response.Cookies.Add(cookie1);

            return RedirectToAction("Index", "Login");
        }

यहां लिखा है फॉर्म्सऑथेंटिकेशन.साइनआउट(); और दिनांक रीसेट करके क्लाइंट को एक नई कुकी फ़ाइल भेजता है। तो क्या हम यह कह सकते हैं कि सर्वर कुकी फ़ाइल को दोबारा बनाता है और तारीख को अपडेट करके एक नई कुकी फ़ाइल बनाता है और इसे ब्राउज़र पर भेजता है, ब्राउज़र मौजूदा कुकी के साथ नई कुकी फ़ाइल को अधिलेखित कर देता है और कुकी को काम करने से रोकता है? यदि ऐसा है, तो ब्राउज़र साइट से अनुरोध करते समय कुकी की तारीख और समय को देखकर सर्वर पर पुरानी दिनांकित कुकी नहीं भेजता है, है ना? तो सर्वर साइड पर, मुझे यह जांचने की ज़रूरत नहीं है कि यह कुकी पुरानी है या नहीं, यदि यह पुरानी है, तो यह कभी भी सर्वर पर नहीं जाती है?

मैं सामान्य कुकी और फॉर्म्सऑथेंटिकेशन के बीच अंतर नहीं समझता और फिर मैं फॉर्म्सऑथेंटिकेशन और फॉर्म्सऑथेंटिकेशन के साथ कुकी बनाने के बीच अंतर नहीं समझता।SetAutCookie

सी#
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        username,
        DateTime.Now,
        DateTime.Now.AddMinutes(30),
        isPersistent,
        userData,
        FormsAuthentication.FormsCookiePath)

;

सी#
HttpCookie userInfo = new HttpCookie("userInfo");
userInfo["UserName"] = "Annathurai";
userInfo["UserColor"] = "Black";
userInfo.Expires.Add(new TimeSpan(0, 1, 0));
Response.Cookies.Add(userInfo);

コメント

タイトルとURLをコピーしました