2009-02-27 21 views
6

estoy poniendo en práctica OpenID y que le gustaría recuperar la dirección de correo electrónico del usuario y otra información sobre el usuario, que estoy haciendo esto:Solicitud dirección de correo electrónico del proveedor de OpenID

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

Pero el proveedor no devuelve cualquier cosa Estoy usando DotNetOpenID

¿Qué estoy haciendo mal?

gracias!

EDIT:

Cuando intento para registrarse en http://www.plaxo.com/ usando MyOpenID o Google, que ambos dicen plaxo está solicitando información adicional, pero cuando pruebo mi sitio que no dice nada ...

Respuesta

6

Como dijo Martin, depende del proveedor.

MyOpenID no hace AttributeExchange, creo. No obstante, hacen sreg (Registro simple), así que agregue una extensión ClaimsRequest a su solicitud y obtendrá un ClaimsResponse de parte de algunos Proveedores.

Google solo ofrece AttributeExchange, y solo proporciona una dirección de correo electrónico. Lo único que le falta a su código es que Google tampoco ofrece voluntariamente la dirección de correo electrónico a menos que la marque como "Requerido" en su solicitud. Agregue un segundo parámetro "verdadero" al constructor AttributeRequest y Google se iluminará y le dará la dirección de correo electrónico de los usuarios.

Éstos son algunos docs and samples of getting attributes.

+0

Andrew, ¿puedes editar esta respuesta con un código C# sreg de muestra, o un enlace a una publicación de blog/tutorial del sitio web con algún código que lo muestre? –

+0

Gracias, conseguí que Google funcionara ahora que agregué AX – gravitation

+0

Pure.Krome, agregué un enlace según lo solicitado. –

1

Tal vez no esté haciendo algo incorrecto: es posible que el proveedor simplemente no admita la solicitud o decida no enviar la información solicitada.

http://blog.nerdbank.net/2008/07/how-to-use-dotnetopenid-attribute.html "Al igual que con todas las extensiones de OpenID, simplemente enviando una solicitud con una extensión en que no garantiza que el proveedor enviará una respuesta a la extensión de la espalda. El proveedor no puede soportar esa extensión, o puede optar por no envíe cualquier respuesta. "

Cuestiones relacionadas