По-видимому, самое внутреннее в этой документации использовалось для последнего измерения в массиве. В случае тензорного потока, однозначно, комментарии кода работают лучше, чем документация. Официальная документация по тензорному потоку все еще отстой.
Как Martin сказал, это зависит от Поставщика.
MyOpenID не делает AttributeExchange, я думаю. Они делают sreg (Простая Регистрация) хотя, поэтому добавьте a ClaimsRequest
расширение Вашего запроса и Вы получите a ClaimsResponse
назад от некоторых Поставщиков.
Google только делает AttributeExchange и только вводит адрес электронной почты. Единственная вещь, которую Вы пропускаете из своего кода, состоит в том, что Google также даже не добровольно предлагает адрес электронной почты, если Вы не отмечаете его как "Необходимый" в Вашем запросе. Добавьте", истинный" второй параметр конструктору AttributeRequest и затем Google должен осветить и дать Вам адрес электронной почты пользователей.
Вот некоторые документы и образцы получения атрибутов.
Возможно, Вы не делаете ничего плохого - поставщик не может просто поддерживать запрос или принимает решение не отправить запрошенную информацию.
http://blog.nerdbank.net/2008/07/how-to-use-dotnetopenid-attribute.html "Как со всеми расширениями OpenID, просто отправляя запрос с расширением в нем не гарантирует, что Поставщик отправит ответ на то расширение назад. Поставщик не может поддерживать то расширение или может принять решение не отправить любой ответ".