Я использую DotNetOpenAuth lib для работы с Google (только) OpenId. И я получаю электронную почту без каких-либо проблем. Но я не могу получить FullName, оно всегда равно нулю.
request.AddExtension(new ClaimsRequest
{
Email = DemandLevel.Require,
FullName = DemandLevel.Require
});
ClaimsResponse claimsResponse = relyingPartyResponse.GetExtension<ClaimsResponse>();
if (claimsResponse != null)
{
var email = claimsResponse.Email;
var fullName = claimsResponse.FullName;
}
Я погуглил эту проблему и обнаружил, что:
Рад, что у вас все получилось. Google не будет давать полное имя или псевдоним для своих пользователей. Они ТОЛЬКО дают адрес электронной почты и (я думаю, но, возможно, только в белом списке) часовой пояс. Дело не в том, чтобы выяснить, как настроить RP так, чтобы она работала. Google просто пока этого не сделает. - Эндрю Арнотт 8 сентября в 14:22
stackoverflow.com/questions/1387438/retrieve-openid-user-information-claims-across-providers
Но это было в сентябре 2009 года, возможно, что-то изменилось с того момента ... Я обнаружил, что в http://code.google.com/apis/accounts/docs/OpenID.html:
openid.ax.required - (обязательно) Указывает запрашиваемый атрибут.
Допустимые значения: «страна», «электронная почта», «имя», «язык», «фамилия». Чтобы запросить несколько атрибутов, задайте для этого параметра список атрибутов, разделенных запятыми.
Итак, мой вопрос: как я могу получить FullName (FirstName, LastName) из Google OpenId?