I am using the out of the box MVC4 OpenId implementation.
I get the AuthenticationResult using:
var result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
On the result you can access provider specific data using the array:
result.ExtraData
Now for the question:
I know that you can request additional information from providers as part of the OpenId solution.
How do I request specifically Firstname & Lastname, from providers that don’t give it by default like Google etc.
Thanks.
BrockAllen has an interesting project that Integrates Claims and OAuthWebSecurity. This does the heavy lifting in getting the extra data from all the various providers, calls them the same thing and then attaches them to the ClaimsPrincipal.Current.Claims collection.
There is a bug in an older version of DotNetOpenAuth with respect to getting correct data from google OpenID. Perhaps an updte via nuget will fix it for you.