2014-05-19 7 views
6

में लॉग इन किया मैं एक गूगल खाते का उपयोग करके MVC5 अनुप्रयोग में Owin के साथ बाहरी लॉगिन लागू करने के लिए कोशिश कर रहा है जब तक।GetExternalLoginInfoAsync अशक्त पहले से ही गूगल

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

यदि मैं अपने अनुप्रयोगों पर क्लिक करता हूं तो Google में पहले से लॉग इन नहीं होता है, तो मुझे Google के साथ लॉगिन करने के लिए कहा जाता है, लेकिन कॉल बैक रिसीवर ऐसा नहीं लगता है कि मैंने लॉगिनइनफ़ोइन के रूप में लॉग इन किया है कॉलबैक में हमेशा इस परिदृश्य में शून्य ...

[AllowAnonymous] 
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl) 
    { 
     var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 

     if (loginInfo == null) 
     { 
      return RedirectToAction("Login"); 
     } 

     // Code omitted for brevity. 
     } 
    } 

क्या किसी के पास कोई कामकाज या स्पष्टीकरण है? यह लगभग Google की लॉग इन करने के अनुरोध के बाद बाहरी कुकी को ओविन तक उपलब्ध नहीं कराया जाता है।

+0

के संभावित डुप्लिकेट (http://stackoverflow.com/questions/19775321/owin-returns-null [Owin अशक्त allways MVC5 आवेदन में गूगल या फेसबुक के लिए देता है] -allways-इन-mvc5-आवेदन के लिए गूगल या फेसबुक) –

उत्तर

7

जांच के दिनों के बाद, मैं अंत में जवाब भर में आ गए हैं। समस्या यह प्रतीत होती है कि Google में लॉग इन करने के बाद, यह साइट पर वापस रीडायरेक्ट करता है और साइनइन-Google की अनुमति नहीं है, इसलिए लॉगिन पृष्ठ पर रीडायरेक्ट किया जाता है। निश्चित नहीं है कि यह क्यों काम करता है अगर पहले से ही Google में साइन इन किया गया है। मैं लेख पाने के बाद यह पता चला ...

http://blog.technovert.com/2014/01/google-openid-integration-issues-asp-net-identity/

मैं अपने कॉन्फ़िग फ़ाइल के लिए निम्न गयी।

<location path="signin-google"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 
</location> 

अब यह काम करता है ...

+0

पहले से ही Google में प्रवेश करते हैं, तो यह है कि आप बाहरी लॉगिन कॉलबैक पूरी तरह से बचने और बस एप्लिकेशन पर पुनः निर्देशित कर रहे हैं संभव है। कॉलबैक प्रमाणीकरण एपीआई का आह्वान करने से रीडायरेक्ट है। –

+1

यह वास्तव में अप्रासंगिक है; ओविन आपके लिए यह यूआरएल संभालता है कि यहां क्या जवाब है जो कॉन्फ़िगर करने का प्रयास कर रहा है। सवाल पर मेरा उत्तर देखें इस का एक शिकार है: http://stackoverflow.com/a/29921451/176877 –

+0

इस विंडो प्रमाणीकरण किया जा रहा है, सक्षम है जो इसे गूगल प्रमाणन का उपयोग कर एक MVC आवेदन के लिए नहीं होना चाहिए की वजह से सबसे अधिक संभावना है । –

संबंधित मुद्दे