asp.net-mvc – 如何使用ASP.NET MVC 5和OWIN获取Facebook的第一
发布时间:2020-12-16 00:23:15 所属栏目:asp.Net 来源:网络整理
导读:我知道提供了一个“名称”字段,但我更愿意明确地访问第一个和最后一个名字。有人可以帮忙吗?我仍然围着ASP.Net MVC包围我的头。 解决方法 在您的Startup.Auth.cs ConfigureAuth(IAppBuilder app)方法中,为Facebook设置以下内容: var x = new FacebookAut
我知道提供了一个“名称”字段,但我更愿意明确地访问第一个和最后一个名字。有人可以帮忙吗?我仍然围着ASP.Net MVC包围我的头。
解决方法
在您的Startup.Auth.cs ConfigureAuth(IAppBuilder app)方法中,为Facebook设置以下内容:
var x = new FacebookAuthenticationOptions(); x.Scope.Add("email"); x.AppId = "*"; x.AppSecret = "**"; x.Provider = new FacebookAuthenticationProvider() { OnAuthenticated = async context => { context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken",context.AccessToken)); foreach (var claim in context.User) { var claimType = string.Format("urn:facebook:{0}",claim.Key); string claimValue = claim.Value.ToString(); if (!context.Identity.HasClaim(claimType,claimValue)) context.Identity.AddClaim(new System.Security.Claims.Claim(claimType,claimValue,"XmlSchemaString","Facebook")); } } }; x.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie; app.UseFacebookAuthentication(x); /* app.UseFacebookAuthentication( appId: "*",appSecret: "*"); * */ 然后使用它访问用户的登录信息: var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 然后以下获得名字: var firstNameClaim = loginInfo.ExternalIdentity.Claims.First(c => c.Type == "urn:facebook:first_name"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – Viewmodel和动态菜单最佳实践 –
- asp.net-mvc – ASP .Net MVC中购物车的会话变量
- asp.net-mvc – ViewModel有自己的逻辑吗?
- asp.net-mvc – MVC 3应用程序中的自定义Http处理
- asp.net-web-api – 找不到Web API路由404
- asp.net-mvc-3 – 在DEBUG或Debugger中运行时禁用
- asp.net-identity – ASP.net身份 – UserManage
- asp.net-mvc – 在MVC Web应用程序中的存储库中共
- Asp.Net百度站长工具的主动推送功能
- ASP.NET,jQuery,脏窗体和window.onbeforeunload
热点阅读