JSW*_*son 8 c# asp.net-mvc oauth owin
我修改了startup.Auth.cs以便我可以添加范围.这是我有的:
MicrosoftAccountAuthenticationOptions mo = new MicrosoftAccountAuthenticationOptions()
{
ClientId = "My Client ID",
ClientSecret = "My Client Secret",
};
app.UseMicrosoftAccountAuthentication(mo);
Run Code Online (Sandbox Code Playgroud)
这允许我验证用户.
我尝试添加范围wl.signin,wl.emails和wl.contacts_emails.但是,它们会导致Microsoft登录页面报告以下错误:AADSTS70011:输入参数"scope"的提供值无效.范围wl.signin,wl.emails,wl.contacts_emails无效.openid和email的范围组合似乎有效.但是,openid范围对我正在尝试做的事情来说太过分了.也就是说,我认为从用户那里询问太多了.范围电子邮件全部由它自己不起作用.
这特别奇怪,因为Visual Studio设置的模板假定外部身份验证提供程序将提供电子邮件地址.
我如何只收到用户的电子邮件?
对于上下文,我使用以下文档:https: //developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissions,这给人的印象是我希望范围中包含电子邮件和配置文件.但是,它继续声明它们默认包含在内.
我正在尝试使用以下文档在我的MVC项目中实现外部身份验证:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins.
看起来您必须使用ASP.Net Core Web 应用程序(.Net Framework)才能获取电子邮件。代码类似,但请注意:MicrosoftAccountOptions而不是MicrosoftAccountAuthenticationOptions。
app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions()
{
ClientId = "My Client ID",
ClientSecret = "My Client Secret"
});
Run Code Online (Sandbox Code Playgroud)
有趣的是,这不会通知用户您正在获取他们的电子邮件地址。我可以使用 Google、Facebook、Twitter、Microsoft 和 LinkedIn。现在使用 AccountKit 进行电子邮件和短信登录。
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |