/ / OAuthWebSecurity फॉर्मेशन फॉर्मेशन सत्र mvc4 को क्लीयर नहीं कर रहा है - asp.net-mvc-4, session, google-oauth

OAuthWebSecurity Forms प्रमाणीकरण सत्र समाशोधन नहीं कर रहा है mvc4 - asp.net-mvc-4, सत्र, google-oauth

हमारा एक MVC4 अनुप्रयोग है। हम Google, फेसबुक और ट्विटर के साथ लॉगिन की अनुमति देने के लिए OAuth & Formsauthentication हैं।

पहली बार जब मैं Google का उपयोग करके लॉगिन करता हूं। मैं Google पृष्ठ पर पुनर्निर्देशित हूं और मैंने क्रेडेंशियल्स प्रदान किए हैं जो मुझे लॉग इन करते हैं, सभी ठीक हैं।

लॉगआउट, और फिर से लॉगिन करने के बाद, मैं स्वचालित रूप से लॉगिन करने में सक्षम हूं। मुझे लगता है कि ब्राउज़र में कुकीज़ साफ़ नहीं हैं, हालांकि मैंने उन्हें लॉगऑफ़ में साफ़ कर दिया है।

    public ActionResult LogOff()
{
//Clears out Session
Response.Cookies.Clear();

//Signs out of WebSecurity and FormsAuthentication
WebSecurity.Logout();
FormsAuthentication.SignOut();

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

Session.Clear();
Session.Abandon();

return RedirectToAction(AXN_DFLT, CNTLR_DFLT);
}

लॉगऑफ के बाद मुझे फिर से लॉगिन पर Google पृष्ठ पर पुनः निर्देशित किया जाना चाहिए। लेकिन ऐसा नहीं हो रहा है। किसी को pls सलाह?

यहाँ एक ही तरह का प्रश्न: ASPXAUTH सत्र OAUTH के साथ लॉगआउट पर अमान्य है

लेकिन कोई जवाब नहीं !!

उत्तर:

जवाब के लिए 2 № 1

पहली नजर में, कोई भी प्रतीत नहीं होता हैआपके वर्णित प्रश्न में समस्या। आपका समाधान ठीक काम कर रहा है। मुझे ऐसा लगता है कि आप समझ नहीं रहे हैं कि OAuth, FormsAuthenticate, सत्र और कुकीज़ पूरी तरह से कैसे फिट होते हैं। सादगी के लिए, मैं "आपके द्वारा वर्णित प्रक्रिया प्रवाह की रूपरेखा तैयार करूँगा और उनमें से प्रत्येक की व्याख्या करूँगा ...

परिदृश्य यह है कि आप न तो अपनी वेबसाइट और न ही अपने Google खाते में लॉग इन हैं।

  1. आप अपने वेबसाइट लॉगिन पेज पर ब्राउज़ करें
  2. "Google के साथ लॉगिन करें" बटन पर क्लिक करें: यह आपको Google खाता लॉगिन संवाद पर पुनर्निर्देशित करता है, इसलिए आप "अब अपनी वेबसाइट पर नहीं हैं ... आप अब Google के दरवाजे पर दस्तक दे रहे हैं"
  3. आप Google के साथ सफलतापूर्वक लॉगिन करते हैं: Google एक कुकी जारी करेगा (केवल Google की सेवाओं के लिए)

इस बिंदु तक, आपका ब्राउज़र एक कुकी का मालिक है ... Google का एक है

4. आपको अपनी वेबसाइट पर वापस भेज दिया गया है: आपकी वेबसाइट ने Google द्वारा जारी किया गया एक्सेस टोकन (कुकी नहीं) देखा और फिर आपकी वेबसाइट अपनी स्वयं की कुकी जारी करेगी, जिसका Google के साथ कोई लेना-देना नहीं है

इस बिंदु तक, आपका Google और आपकी वेबसाइट के साथ लॉग इन है, जिसका अर्थ है कि आपका ब्राउज़र 2 वैध कुकीज़ (Google "और आपकी वेबसाइट" s) का मालिक है

5।बाद में, आप अपनी वेबसाइट से लॉग आउट करते हैं: यह क्रिया आपकी वेबसाइट से संबंधित किसी भी सत्र (आपकी वेबसाइट के लिए कुकी सहित) को नष्ट कर देती है। ध्यान दें कि, Google की कुकी अभी भी मान्य है, वास्तव में, यदि आप अपने gmail, youtube या किसी अन्य Google की सेवा पर जाते हैं, तो आप पूरी तरह से प्रमाणीकरण को बायपास कर देंगे क्योंकि आप Google से लॉग आउट नहीं हुए हैं ... केवल आपकी वेबसाइट से ।

6।फिर आप "लॉगिन विद गूगल" बटन पर क्लिक करके अपनी वेबसाइट पर वापस लॉग इन करने का निर्णय लेते हैं: यह क्रिया आपको Google पर ले जाएगी, लेकिन, क्योंकि Google यह पता लगाता है कि आप पहले से ही प्रमाणित हैं (लॉग इन हैं) इसे पुनः करने की आवश्यकता नहीं है- आपको प्रमाणित करता है, यह पहले से ही जानता है कि आप कौन हैं और लॉगिन डायलॉग का संकेत नहीं देते हैं, इसके बजाय, यह आपकी वेबसाइट पर एक नया नया एक्सेस टोकन जारी करके आपको पुनः निर्देशित करता है।

मूल रूप से, यदि आप पहले से लॉग इन हैं, तो आपको Google के साथ फिर से लॉगिन करने की आवश्यकता नहीं है

उम्मीद है कि यह समझ में आता है