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
热点阅读
