4

私は dotnetopenauth 3.3.0.9283 (ナイトリー ビルド) を実行しています。うまく機能し、以前の問題 ( DotNetOpenAuth が電子メールを取得してリダイレクトする問題)を解決しました。

これで、ユーザーのメールを gmail からのみ取得できるようになりました。yahoo と myspace を試しましたが、常に「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。ビルドに付属のサンプル ajaxlogin.aspx と loginProgrammatic.aspx を実行しましたが、どちらも同じエラー メッセージが表示されます。

これは私がサンプルに追加した唯一の行です (また、メールを必須に設定します)

var email = OpenIdAjaxTextBox1.AuthenticationResponse.GetExtension<ClaimsResponse>().Email;
4

1 に答える 1

7

1行にコードが多すぎます。

GetExtension<T>()プロバイダーが実際にその拡張子を応答に含めていない場合は、nullを返します。したがって、逆参照する前に、null以外の値が返されることを常に確認する必要があります。

Yahooは、RPの小さなホワイトリストを除いて、ユーザーの追加情報を(まだ)提供することをサポートしていないため、Yahooからnullが返されます。

MySpaceについてはわかりませんが、サポートされていないのではないかと思います。

于 2009-10-22T14:32:55.317 に答える