如何从asp.net核心中的Microsoft帐户获取外部登录配置文件图片
发布时间:2020-12-16 03:24:47 所属栏目:asp.Net 来源:网络整理
导读:如何使用Microsoft.AspNetCore.Authentication.Facebook库从Microsoft帐户获取个人资料图片?我尝试使用声明,但他们没有配置文件图片值…我也尝试通过检查图片网址查看帐户的源代码控制,但我注意到网址是由一些我无法索赔的参数组成的,所以我无法像Facebook
如何使用Microsoft.AspNetCore.Authentication.Facebook库从Microsoft帐户获取个人资料图片?我尝试使用声明,但他们没有配置文件图片值…我也尝试通过检查图片网址查看帐户的源代码控制,但我注意到网址是由一些我无法索赔的参数组成的,所以我无法像Facebook一样构建网址…有人可以帮助我吗?
解决方法
您可以使用Microsoft Graph从Microsoft帐户获取配置文件图片:
https://developer.microsoft.com/en-us/graph/quick-start 有关如何申请个人资料照片的具体说明: 如果您按照快速入门(选择asp.net,单击“获取应用程序ID和密码”并下载示例代码),很容易获得如下数据: GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient(); var photoStream = await graphService.GetCurrentUserPhotoStreamAsync(graphClient); 编辑:对不起,忘了asp.net核心部分(似乎没有Microsoft.Identity.Client可用于asp.net核心). 在ExternalLoginCallback中,您可以从var info = await _signInManager.GetExternalLoginInfoAsync()返回的ExternalLoginInfo对象中获取访问令牌; services.AddAuthentication() .AddMicrosoftAccount(options => { options.ClientId = Configuration["ExternalProviders:Microsoft:ClientId"]; options.ClientSecret = Configuration["ExternalProviders:Microsoft:ClientSecret"]; options.SaveTokens = true; ... 那么这只是制作一个http请求的问题 – 这样的事情: var httpClient = new HttpClient(); httpClient.SetBearerToken(info.AuthenticationTokens.Where(t => t.Name.Equals("access_token")).First().Value); var pictureResult = httpClient.GetAsync("https://graph.microsoft.com/v1.0/me/photo/$value").Result; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – 设置gridview标题颜色
- asp.net – 如何在MVC 3中设置图表系列颜色?
- asp.net-mvc-3 – CopyAllFilesToSingleFolderFo
- ASP.NET – 如何在C#表上设置Cells-Width-Percen
- 验证 – ASP.NET MVC将null转换为零长度字符串
- 在asp.net中读取查询字符串而不指定任何页面名称
- validation – Controller.ValidateModel方法.它
- asp.net-mvc – 忽略viewstart在asp.net mvc raz
- 如何在ASP.Net 3.5中制作标签,标题和字段标题内容
- asp.net – 使用SVN和TeamCity的Web应用程序部署
热点阅读