6

私は OpenID を実装しており、ユーザーの電子メール アドレスとユーザーに関するその他の情報を取得したいと考えています。これを行っています。

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

しかし、プロバイダーは何も返しません。DotNetOpenID を使用しています

私は何を間違っていますか?

ありがとう!

編集:

MyOpenID または Google を使用してhttp://www.plaxo.com/にサインアップしようとすると、どちらも plaxo が追加情報を要求していると言いますが、サイトをテストすると何も言われません...

4

2 に答える 2

6

マーティンが言ったように、それはプロバイダーによって異なります。

MyOpenID は AttributeExchange を実行しないと思います。ただし、sreg (簡易登録) を行うためClaimsRequest、リクエストに拡張機能を追加するとClaimsResponse、一部のプロバイダーから返信が返ってきます。

Google は AttributeExchange のみを行い、メール アドレスのみを提供します。コードに欠けている唯一のことは、リクエストで「必須」とマークしない限り、Google もメール アドレスを自発的に提供しないことです。AttributeRequest コンストラクターに ", true" の 2 番目のパラメーターを追加すると、Google が点灯し、ユーザーのメール アドレスが表示されます。

属性を取得するためのドキュメントとサンプルを次に示します。

于 2009-03-04T20:43:46.270 に答える