2009-02-27 7 views
6

Je suis mise en œuvre OpenID et je voudrais récupérer l'adresse e-mail de l'utilisateur et d'autres informations sur l'utilisateur, je fais ceci:Demander l'adresse e-mail de fournisseur OpenID

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

Mais le fournisseur ne fait pas retourner quelque chose. J'utilise DotNetOpenID

Qu'est-ce que je fais mal?

merci!

EDIT:

Lorsque je tente d'inscrire à l'aide http://www.plaxo.com/ MyOpenID ou Google, disent-ils à la fois Plaxo demande des informations supplémentaires, mais quand je teste mon site, ils ne dit rien ...

Répondre

6

Comme l'a dit Martin, cela dépend du fournisseur.

MyOpenID ne fait pas AttributeExchange, je pense. Ils font sreg (inscription simple) si, alors ajoutez une extension ClaimsRequest à votre demande et vous obtiendrez un ClaimsResponse de retour de certains fournisseurs.

Google effectue uniquement AttributeExchange et ne fournit qu'une adresse e-mail. La seule chose qui vous manque dans votre code est que Google ne propose même pas l'adresse e-mail à moins que vous ne la marquiez comme "Requis" dans votre demande. Ajoutez un deuxième paramètre "true" au constructeur AttributeRequest, puis Google devrait s'allumer et vous donner l'adresse e-mail des utilisateurs.

Voici quelques docs and samples of getting attributes.

+0

Andrew, pouvez-vous s'il vous plaît modifier cette réponse avec un exemple de code C# sreg, ou un lien vers un blog/tutoriel de site Web avec du code montrant? –

+0

Merci, j'ai travaillé Google maintenant que j'ai ajouté AX – gravitation

+0

Pure.Krome, j'ai ajouté un lien comme demandé. –

1

Peut-être que vous ne faites rien de mal - le fournisseur peut simplement ne pas soutenir la demande, ou choisit de ne pas envoyer les informations demandées.

http://blog.nerdbank.net/2008/07/how-to-use-dotnetopenid-attribute.html « Comme toutes les extensions OpenID, en envoyant simplement une demande avec une extension en elle ne garantit pas que le fournisseur envoie une réponse à cette extension arrière. Le fournisseur peut ne pas supporter cette extension, ou peut choisir de ne pas envoyez une réponse. "