मैंने स्टार्टअप.Auth.cs संशोधित किया है ताकि मैं स्कोप जोड़ सकूं। यहां मेरे पास है:एमवीसी प्रोजेक्ट में माइक्रोसॉफ्ट अकाउंट प्रमाणीकरण का उपयोग करते समय मैं उपयोगकर्ता का ईमेल कैसे प्राप्त करूं?
MicrosoftAccountAuthenticationOptions mo = new MicrosoftAccountAuthenticationOptions()
{
ClientId = "My Client ID",
ClientSecret = "My Client Secret",
};
app.UseMicrosoftAccountAuthentication(mo);
यह मुझे उपयोगकर्ता को प्रमाणीकृत करने की अनुमति देता है।
मैं स्कोप wl.signin जोड़ने की कोशिश की है, wl.emails और wl.contacts_emails। हालांकि, वे निम्न त्रुटि की रिपोर्ट करने के लिए Microsoft लॉगिन पृष्ठ का कारण बनते हैं: AADSTS70011: इनपुट पैरामीटर 'स्कोप' के लिए प्रदत्त मान मान्य नहीं है। दायरा wl.signin, wl.emails, wl.contacts_emails मान्य नहीं है।ओपनिड और ईमेल का दायरा संयोजन काम करने लगता है। हालांकि, स्कोप ओपनिड जो मैं करने की कोशिश कर रहा हूं उसके लिए अधिक है। यही है, मुझे लगता है कि उपयोगकर्ता से पूछना बहुत अधिक है। दायरा ईमेल सब कुछ स्वयं द्वारा काम नहीं करता है।
यह विशेष रूप से अजीब है क्योंकि विजुअल स्टूडियो सेट अप टेम्पलेट मानता है कि बाहरी प्रमाणीकरण प्रदाता एक ईमेल पता प्रदान करेगा।
मैं केवल उपयोगकर्ता का ईमेल कैसे प्राप्त करूं?
संदर्भ के लिए, मैं निम्नलिखित दस्तावेजों का उपयोग कर रहा: https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissions जो धारणा है कि मैं ईमेल और प्रोफ़ाइल दायरे में शामिल करना चाहते हैं देता है। हालांकि, यह कहता है कि वे डिफ़ॉल्ट रूप से शामिल हैं।
मैं दस्तावेज़ का उपयोग कर अपने एमवीसी प्रोजेक्ट में बाहरी प्रमाणीकरण को लागू करने की कोशिश कर रहा हूं: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins।
यह एक एएसपी.Net वेब अनुप्रयोग (नेट फ्रेमवर्क) है। मैं पूरी चीज को एएसपी.Net कोर वेब एप्लिकेशन (नेट कोर) के साथ करने जा रहा हूं। इंटरफ़ेस थोड़ा अलग है यानी यह MicrosoftAccountAuthenticationOptions के बजाय MicrosoftAccountOptions का उपयोग करता है। – JSWilson