Andrew Arnott a publié un article sur la façon d'extraire les données d'extension d'échange d'attributs, à partir d'un programme OpenId. Voici un extrait du code: -Comment extraire des données d'un attribut 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;
}
Lorsque je tente de faire ce qui suit ...
fetch.GetAttribute(...)
je reçois une erreur de compilation. Fondamentalement, cela n'existe pas. Est le seul (lire: bon) façon de le faire comme suit ...
fetch.Attribue[WellKnownAttributes.Contact.Email].Values
cheers :)
Vous savez, vu à quel point le "bon" code est de chercher une seule valeur AX m'a motivé pour ajouter une méthode d'assistance à la classe FetchResponse. Ce sera dans la v3.2. http://dotnetopenauth.net:8000/ticket/67 –
Oui. J'ai ajouté une méthode d'extension qui l'a fait la nuit dernière. Je l'ai posté dans mon autre poste. Mais vous avez ajouté tout ce qui est bon :) ma méthode d'extension passée dans un params de clés, donc je peux extraire la première valeur pour la première clé, dans les paramètres clés :) –
Aussi, emailAddresses renverra toujours une instance? pourrait-il retourner NULL? –