facebook - ASP.NET Core Facebook 身份验证中间件用户图片

标签 facebook authentication asp.net-core claims

我正在尝试使用 ASP.NET Core 1.0 中的 Facebook 身份验证中间件检索用户个人资料图片。我已经设法添加这些配置以使用户图片可用

app.UseFacebookAuthentication(new FacebookOptions()
        {
            AppId = Configuration["Authentication:Facebook:AppId"],
            AppSecret = Configuration["Authentication:Facebook:AppSecret"],
            Scope = { "public_profile" },
            Fields = { "picture" }
        });

获取数据

var email = info.Principal.FindFirstValue(ClaimTypes.Email);

var userName = info.Principal.FindFirstValue(ClaimTypes.GivenName);

但是我现在如何检索用户图片,因为没有Claim Type

最佳答案

正如 Set 在他的回答中所说,您可以使用 Facebook Graph API 获取图片。像这样 https://graph.facebook.com/{user-id}/picture

示例代码:

var info = await _signInManager.GetExternalLoginInfoAsync();
var identifier = info.Principal.FindFirstValue(ClaimTypes.NameIdentifier); 
var picture = $"https://graph.facebook.com/{identifier}/picture";

您可能想检查 info 是否不为 null 以及 info.LoginProvider 是否为 facebook。

关于facebook - ASP.NET Core Facebook 身份验证中间件用户图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42565466/

相关文章:

facebook - 如何在不让用户完全退出 Facebook 的情况下撤销应用程序授权?

python - Python获取当前登录名的跨平台解决方案

ios - 为什么注销时不解析重置 PFuser?

c# - 将文件上传到 Azure Blob 时的 ASP.NET Core 内存消耗

asp.net-core - 如何为 asp.net vnext 使用不同的 .net 语言 (F#)

Facebook fql 之类的表已删除?

ios - 通过应用发送 facebook 请求

javascript - 钛 - Facebook 授权() - "An error occurred"

rest - 金融科技/银行应用程序上可能的 API 授权技术

azure - 无法从同一计算机上的 docker 容器连接到 Azure 存储模拟器