asp.net-mvc – 版本弃用Facebook Graph API v2.2
我们的Facebook登录目前无效.我们收到了Facebook Developer Portal的消息:
我们正在使用ASP.NET MVC 5,我们正在使用或认证如下: var facebookAuthenticationOptions = new FacebookAuthenticationOptions() { AppId = "****",AppSecret = "****",AuthenticationType = "Facebook",SignInAsAuthenticationType = "ExternalCookie",Provider = new FacebookAuthenticationProvider { OnAuthenticated = async ctx => ctx.Identity.AddClaim(new Claim(ClaimTypes.Email,ctx.User["email"].ToString())) } }; facebookAuthenticationOptions.Scope.Add("email"); 但今天,我们的登录信息对象在ExternalLoginCallback中为null: [HttpGet] [AllowAnonymous] [RequireHttps] public async Task<ActionResult> ExternalLoginCallback(string returnUrl = null) { try { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } ... more code here... 在Facebook开发. Portal我们的API版本是2.3 我们测试了很多选项,没有结果: Access email address in the OAuth ExternalLoginCallback from Facebook v2.4 API in ASP.NET MVC 5 Why new fb api 2.4 returns null email on MVC 5 with Identity and oauth 2? 非常感谢你的帮助. 解决方法
我遇到了同样的问题,这就是我如何设法解决它并从Facebook获取电子邮件.
>按照NuGet Pacakges进行更新 > Microsoft.Owin到3.1.0-rc1版 然后将以下代码添加到Identity Startup类 var facebookOptions = new FacebookAuthenticationOptions() { AppId = "your app id",AppSecret = "your app secret",BackchannelHttpHandler = new FacebookBackChannelHandler(),UserInformationEndpoint = "https://graph.facebook.com/v2.8/me?fields=id,name,email,first_name,last_name",Scope = { "email" } }; app.UseFacebookAuthentication(facebookOptions); 这是FacebookBackChannelHandler()的定义类: using System; using System.Net.Http; public class FacebookBackChannelHandler : HttpClientHandler { protected override async System.Threading.Tasks.Task<HttpResponseMessage> SendAsync( HttpRequestMessage request,System.Threading.CancellationToken cancellationToken) { // Replace the RequestUri so it's not malformed if (!request.RequestUri.AbsolutePath.Contains("/oauth")) { request.RequestUri = new Uri(request.RequestUri.AbsoluteUri.Replace("?access_token","&access_token")); } return await base.SendAsync(request,cancellationToken); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何跟踪IIS服务器性能
- asp.net-web-api – 使用ASP.NET MVC 6 WebAPI从Auth0获取用
- asp.net核心 – ASP.NET核心中的基本身份验证
- asp.net-mvc-3 – 禁用ASP.NET-MVC3中的unicode字符编码
- ASP.NET为什么会话超时,sessionstate超时设置
- asp.net-web-api – oData $count不能与web api 4中的Entit
- 谈谈基于SQL Server 的Exception Handlingp[下篇]
- asp.net MVC NPOI导出excel通用
- sth about abp,zero module,asp.net zero
- asp.net – 防止意外双击按钮
- asp.net – 为什么我的项目引用不被Visual Studi
- asp.net-mvc – ASP.NET MVC:多视图文件夹和_Vi
- Asp.Net 音频文件上传和播放代码
- asp.net-mvc-3 – MVC 3 jQuery对话框的客户端验
- asp.net-mvc – MVC中SelectlistItem的自定义属性
- asp.net – 在服务器端级别渲染javascript.好主意
- asp.net-mvc-4 – ASP.NET MVC 4通过ActionLink传
- asp.net-mvc – 可扩展的SignalR Azure – 在哪里
- asp.net – 什么是system.globalization它和本地
- asp.net – UpdatePanel和ClientIDMode =“静态”