1

我希望我的网站在用户通过 OpenId 或 OAuth 注册时自动添加用户的电子邮件地址和头像。MVC 5 允许用户使用他们的 openId Google、Facebook 或 Twitter 帐户注册和登录,但它似乎没有将任何链接信息传递回网站。

我已经有一个在用户注册时创建的用户配置文件模型,但我希望能够添加他们的电子邮件地址和头像,而无需询问他们。通过 openId 注册后,如何访问与他们的 Google/Facebook/Twitter 帐户关联的用户链接头像和电子邮件地址?

到目前为止,我找到并尝试过的信息似乎适用于 MVC 4 或 MVC 5 的候选发布版,但似乎不起作用。

谢谢

4

2 回答 2

1

看看Gravatar,它很容易实现,你可能会检索到更多图像。

从他们的网站....

“头像”是代表您在线的图像——当您与网站互动时,您的名字旁边会出现一张小图片。Gravatar 是全球公认的头像。您只需上传一次并创建您的个人资料,然后当您参与任何启用 Gravatar 的网站时,您的 Gravatar 图像将自动跟随您到那里。Gravatar 是为网站所有者、开发人员和用户提供的免费服务。它自动包含在每个 WordPress.com 帐户中,并由 Automattic 运行和支持。

于 2013-11-08T23:30:49.873 回答
1

我在这里问了完全相同的问题:

在 mvc 5 中使用 google auth 时如何检索电子邮件地址?

归功于 jd4u 的答案

您可以从 ClaimIdentity 检索它作为电子邮件声明

检查这个例子

var email = externalIdentity.FindFirstValue(ClaimTypes.Email);

关于个人资料图片,jd4u 再次指出:

使用外部身份验证提供程序从 MVC5 框架 OAuth/OWin 身份提供程序获取 ExtraData

我最终改用了他们的 gravatar 图像,因为它看起来工作量更少。无论如何,这就是 gravatar 的用途......

于 2013-11-07T07:44:55.553 回答