Zmodyfikowałem startup.Auth.cs, dzięki czemu mogłem dodać zakresy. Oto, co mam:Jak uzyskać adres e-mail użytkownika podczas korzystania z uwierzytelniania konta Microsoft w projekcie MVC?
MicrosoftAccountAuthenticationOptions mo = new MicrosoftAccountAuthenticationOptions()
{
ClientId = "My Client ID",
ClientSecret = "My Client Secret",
};
app.UseMicrosoftAccountAuthentication(mo);
To pozwala mi uwierzytelnić użytkownika.
Próbowałem dodawanie zakresów wl.signin, wl.emails i wl.contacts_emails. Jednak powodują one, że strona logowania firmy Microsoft zgłasza następujący błąd: AADSTS70011: Podana wartość parametru wejściowego "zasięg" jest niepoprawna. Zakres wl.signin, wl.emails, wl.contacts_emails jest nieprawidłowy. Kombinacja zakresu openid i e-mail wydaje się działać. Jednakże zakres openID jest przesadny, jeśli chodzi o to, co próbuję zrobić. To znaczy, myślę, że to zbyt wiele, aby zapytać użytkownika. Zakres przez to samo nie działa.
Jest to szczególnie dziwne, ponieważ szablon skonfigurowany przez Visual Studio zakłada, że zewnętrzny dostawca uwierzytelnienia dostarczy adres e-mail.
Jak mogę otrzymać tylko wiadomość e-mail użytkownika?
Dla kontekście używam następujące dokumenty: https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissions co daje wrażenie, że chcę email i profil jest objęta zakresem. Dodaje jednak, że są one domyślnie włączone.
Próbuję zaimplementować uwierzytelnianie zewnętrzne w moim projekcie MVC za pomocą dokumentu: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins.
To jest aplikacja sieci Web ASP.Net (.Net Framework). Mam zamiar wypróbować całość z aplikacją ASP.Net Core (.Net Core). interfejs jest nieco inny, tzn. używa MicrosoftAccountOptions zamiast MicrosoftAccountAuthenticationOptions. – JSWilson