ASP.NET MVC 5 如何获取外部登录的电子邮件地址

3

我们正在MVC 5中使用Asp.Net身份验证,允许用户通过其社交媒体账户登录。

var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

我们使用上述API获取账户信息,但除了Facebook之外的所有账户都没有loginInfo.Email的值。那么我们如何获取这两个社交账户的电子邮件地址呢?
  • Microsoft Account
  • Twitter
1个回答

2
我认为这些提供者都没有将用户电子邮件作为声明传播。您将需要直接查询它们的API以获取电子邮件地址。
要从Microsoft帐户中获取电子邮件地址,请使用/me端点
Twitter不允许您检索用户的电子邮件地址。建议(就像其他人一样)在应用程序内向用户询问电子邮件地址。

最奇怪的是,Facebook可以通过loginInfo.Email返回电子邮件地址... - Jerry Bian
@JerryBian - 是的,身份提供者 可能 会将电子邮件地址作为声明发布。 Google 也是如此。毕竟,这两个提供程序都使用电子邮件地址作为主要用户名。但他们并不一定要这样做。 - Peter Lillevold

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接