2009-02-27 4 views
6

Я реализующего OpenID, и я хотел бы, чтобы получить адрес электронной почты пользователя и другую информацию о пользователе, я делаю это:Запрос адреса электронной почты от провайдера OpenID

var fetch = new FetchRequest(); 
fetch.AddAttribute(new AttributeRequest(WellKnownAttributes.Contact.Email)); 
request.AddExtension(fetch); 

Но поставщик не вернуть что-нибудь. Я использую DotNetOpenID

Что я делаю неправильно?

спасибо!

EDIT:

При попытке подписаться на http://www.plaxo.com/ используя MyOpenID или Google, они оба говорят, что Plaxo запрашивает дополнительную информацию, но когда я проверить мой сайт, они ничего не говорят ...

ответ

6

Как сказал Мартин, это зависит от Провайдера.

MyOpenID не делает AttributeExchange, я думаю. Они делают sreg (Простая регистрация), поэтому добавьте расширение ClaimsRequest к вашему запросу, и вы получите ClaimsResponse от некоторых Провайдеров.

Google только делает атрибутExchange и предоставляет только адрес электронной почты. Единственное, что вам не хватает в вашем коде, - это то, что Google даже не набирает адрес электронной почты, если вы не отметили его как «Обязательно» в своем запросе. Добавьте второй атрибут «, true» в конструктор AttributeRequest, а затем Google должен загореться и дать вам адрес электронной почты пользователей.

Вот некоторые docs and samples of getting attributes.

+0

Эндрю, можете ли вы отредактировать этот ответ с помощью некоторого образца кода Среда С # или ссылку на учебник по блогу/веб-сайт с некоторым кодом, показывающим его? –

+0

Спасибо, я теперь нашел Google, что добавил AX – gravitation

+0

Pure.Krome, я добавил ссылку в соответствии с запросом. –

1

Возможно, вы не делаете ничего плохого - поставщик может просто не поддерживать запрос или не хочет отправлять запрошенную информацию.

http://blog.nerdbank.net/2008/07/how-to-use-dotnetopenid-attribute.html «Как и со всеми расширениями OpenID, просто отправив запрос с расширением в нем не гарантирует, что провайдер будет посылать ответ на это расширение обратно. Поставщик не поддерживает это расширение, или может выбрать, чтобы не отправьте любой ответ ».

 Смежные вопросы

  • Нет связанных вопросов^_^