我正在使用内置的MVC 4 OAuthWebSecurity来允许对LinkedIn进行认证。
在我的LinkedIn API密钥上,我添加了r_emailaddress权限。
问题是由于某些原因,电子邮件地址没有被填充到结果对象的ExtraData字典中。
AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
有什么办法可以让我利用内置的LinkedIn提供商,但检索到电子邮件地址?
更新原来LinkedIn内置的DotNetAuthOpenAuth提供商并没有填充电子邮件地址字段...。此外,用户名字段也会被填充用户的全名.所以,至少可以说是有点奇怪。
总之,我找到了这个链接 http:/deepindera.blogspot.com201308aspnet-mvc-oauth-linkedin-email-problem.html。,它向你展示了如何为DotNetAuth创建一个自定义的LinkedIn客户端。
电子邮件地址从配置文件中删除,只能在单独的请求中获得。https:/docs.microsoft.comen-uslinkedinsharedintegrationspeopleprimary-contact-api#retrieve-email-address。
你现在也应该知道,有些用户没有分配任何电子邮件地址。
如果被认证的用户是通过电话号码注册的,并且之前从未在LinkedIn账户中添加任何主要的电子邮件地址,那么API调用将返回空响应体。type的值是区分大小写的,在这种情况下只能是EMAIL。