我正在尝试使用 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/