Andrew Arnottは、OpenId認知者から属性交換拡張データを抽出する方法についての記事をここに掲載しています。ここでは、コードの抜粋です: -DotNetOpenID AX属性からデータを抽出するにはどうすればよいですか?
var fetch = openid.Response.GetExtension<FetchResponse>();
if (fetch != null)
{
IList<string> emailAddresses = fetch.GetAttribute
(WellKnownAttributes.Contact.Email).Values;
IList<string> fullNames = fetch.GetAttribute
(WellKnownAttributes.Name.FullName).Values;
string email = emailAddresses.Count > 0 ? emailAddresses[0] : null;
string fullName = fullNames.Count > 0 ? fullNames[0] : null;
}
私は次の操作を実行しようとすると...
fetch.GetAttribute(...)
私は、コンパイルエラーが発生します。基本的には存在しません。次のようにこれを行う方法...
fetch.Attribue[WellKnownAttributes.Contact.Email].Values
歓声:)
あなたは、「正しい」コードが単一のAX値をフェッチすることがどれほど面倒であるかを見て、FetchResponseクラスにヘルパーメソッドを追加するよう動機づけました。それはv3.2になります。 http://dotnetopenauth.net:8000/ticket/67 –
うん。私はこの最後の夜をした拡張メソッドを追加しました。私は別のSOの投稿にそれを掲載しました。しかし、あなたはそれをすべて追加しました:)私の拡張メソッドはキーのパラメータで渡されたので、キーのパラメータで最初のキーの最初の値を抽出できます:) –
また、emailAddressesは常にインスタンスを返しますか?それはNULLを返すことができますか? –