从开箱即用的mvc4获取OpenId提供商的其他数据?

时间:2012-09-26 11:35:55

标签: c# openid asp.net-mvc-4

我正在使用开箱即用的MVC4 OpenId实现。

我使用了AuthenticationResult

var result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

在结果上,您可以使用数组访问提供者特定数据:

result.ExtraData

现在提出问题:

我知道您可以从提供商处请求其他信息,作为OpenId解决方案的一部分。

我如何具体要求Firstname&姓氏,来自默认不提供谷歌等的提供商。

感谢。

2 个答案:

答案 0 :(得分:1)

BrockAllen有一个有趣的项目Integrates Claims and OAuthWebSecurity。这样可以从所有不同的提供程序中获取额外的数据,将它们称为相同的东西,然后将它们附加到ClaimsPrincipal.Current.Claims集合。

旧版DotNetOpenAuth中存在一个错误,涉及从Google OpenID获取正确的数据。也许通过nuget的updte会为你修复它。

答案 1 :(得分:0)

我还从头开始创建了一个不同的/新库,以便对OAuth2提供程序进行身份验证,然后使用生成的配置文件数据填充用户的声明。换句话说,它不使用MVC 4 OAuthWebSecurity(以及DotNetOpenAuth)实现。

http://brockallen.com/2012/10/26/integrating-claims-and-oauth2/