asp.net-mvc – 如何使用ASP.NET身份(OWIN)访问Facebook的私人信
我在ASP.NET MVC 5(使用RC1版本目前)开发一个网站。该网站将使用Facebook进行用户身份验证和检索初始配置文件数据。
对于身份验证系统,我使用新的基于OWIN的ASP.NET身份引擎(http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx),因为它大大简化了与外部提供程序进行身份验证的过程。 问题是,一旦用户首次登录,我想从Facebook配置文件获取其电子邮件地址,但此数据不包括在生成的声明中。所以我想过这些替代方案来获得地址: >指示ASP.NET身份引擎在其中包含电子邮件地址 所以问题是: >我如何指示ASP.NET身份引擎检索 谢谢! 注意:对于身份验证系统,我的应用程序使用基于此SO答案中链接的示例项目的代码:http://stackoverflow.com/a/18423474/4574 解决方法
要从Facebook检索其他信息,您可以指定在配置facebook身份验证选项时要包括的范围。获取检索到的附加信息可以通过实现提供程序的OnAuthenticated方法来实现,如下所示:
var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions() { Provider = new FacebookAuthenticationProvider() { OnAuthenticated = (context) => { // All data from facebook in this object. var rawUserObjectFromFacebookAsJson = context.User; // Only some of the basic details from facebook // like id,username,email etc are added as claims. // But you can retrieve any other details from this // raw Json object from facebook and add it as claims here. // Subsequently adding a claim here will also send this claim // as part of the cookie set on the browser so you can retrieve // on every successive request. context.Identity.AddClaim(...); return Task.FromResult(0); } } }; //Way to specify additional scopes facebookOptions.Scope.Add("..."); app.UseFacebookAuthentication(facebookOptions); 根据代码here我看到电子邮件已经检索并添加为一个索赔如果Facebook已发送。你不能看到它吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp-classic – 为什么这个函数与任意数字相比作为空检查?
- asp.net-mvc – 为什么我的ActionFilters都没有运行?
- asp.net-mvc-3 – 隐藏日期的默认值
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- asp.net – 如何获取trace.axd请求返回404?
- asp.net-mvc-2 – 在ASP.NET MVC 2中自定义ValidationSumma
- asp.net-mvc-3 – Amazon CloudFront Cache失效策略,以确保
- asp.net-mvc – HandleError属性没有任何效果
- 如何保护我的ASP.NET AJAX应用程序?
- ASP.NET – 如何在User Control中使用Response.Redirect()?