Asp.net 5 MVC 6,添加facebook电子邮件的权限
发布时间:2020-12-16 07:20:22 所属栏目:asp.Net 来源:网络整理
导读:我想知道如何为Facebook外部登录添加更多权限,特别是电子邮件.外部登录工作正常,但我似乎无法将用于MVC 5的相同代码复制到这个中,所以这就是我现在所拥有的: services.ConfigureFacebookAuthenticationOptions(options = { options.AppId = Configuration["
我想知道如何为Facebook外部登录添加更多权限,特别是电子邮件.外部登录工作正常,但我似乎无法将用于MVC 5的相同代码复制到这个中,所以这就是我现在所拥有的:
services.Configure<FacebookAuthenticationOptions>(options => { options.AppId = Configuration["Authentication:Facebook:AppId"]; options.AppSecret = Configuration["Authentication:Facebook:AppSecret"]; options.Scope.Add("email"); }); 但它不会添加电子邮件权限. 这是我在MVC 5中使用的代码以及Facebook SDK nugget: app.UseFacebookAuthentication(new FacebookAuthenticationOptions { AppId = "XXXXXX",AppSecret = "XXXXXXX",Scope = { "email" },Provider = new FacebookAuthenticationProvider { OnAuthenticated = async context => { context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken",context.AccessToken)); } } }); 解决方法
好的,感谢@Mike Wasson的评论,它让我得到了一个有效的答案,
这SO post 所以我在启动课上改变了这个: services.Configure<FacebookAuthenticationOptions>(options => { options.AppId = Configuration["Authentication:Facebook:AppId"]; options.AppSecret = Configuration["Authentication:Facebook:AppSecret"]; options.Scope.Add("email"); options.BackchannelHttpHandler = new FacebookBackChannelHandler(); options.UserInformationEndpoint = "https://graph.facebook.com/v2.4/me?fields=id,name,email,first_name,last_name,location"; } 并添加了这个新课程 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); } } 并且不需要进一步调整,它现在可以检索电子邮件:D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在使用Asp.Net MVC ActionLink,RedirectToA
- ASP.Net MVC cookies – 防篡改?
- asp.net-mvc – ASP.Net MVC – Img Src服务器路径
- ASP.NET可以在C#中设置会话超时值
- asp.net mvc – asp.net mvc decorate [Authorize()]与多个
- asp.net-mvc – 属性路由和本地化问题
- asp.net-mvc-3 – Asp.net Mvc3 webgrid和分页
- ASP.Net Core下Authorization的几种方式
- ASP.NET MVC 3 Razor – jQuery Intellisense
- 一步一步学asp.net Ajax登录设计实现解析
推荐文章
站长推荐
- ASP.NET会话已过期或无法找到 – >因为Session.S
- asp.net – 401向web api发送ajax请求时未经授权
- asp.net-web-api – WebAPI重定向不起作用?
- asp.net – “与底层事务管理器的通信失败”错误
- 如何获得ASP .NET中客户端的临时端口号?
- asp.net – 如何添加ROW_NUMBER到LINQ查询或实体
- asp.net core EF code first
- asp.net-mvc – 在IIS 7.5中返回404的MVC视图
- asp.net – 当DataSource中没有数据时,DetailsVi
- asp.net – 缓存在它应该到期之前到期
热点阅读