2010-03-01 14 views
15

Estoy tratando de encontrar la manera de llegar DotNetOpenAuth (http://www.dotnetopenauth.net/) que trabajan en mi aplicación de formularios webDotNetOpenAuth: Webforms, Introducción

No entiendo por dónde empezar. Tengo un OpenIDSelector en mi Login.aspx que le permite elegir google o Yahoo. Puede elegir uno, luego aparece una ventana emergente y le permite iniciar sesión. Una vez que inicie sesión, el programa se bloquea porque está intentando hacer algo con una base de datos ???

¿No puedo usar algún control (como OpenIDSelector) y recuperar que el usuario fue autenticado, obtener su ClaimedID y manejar el resto por mi cuenta?

EDIT: ¿Tratando de comenzar con OpenID en Webforms? Vaya aquí ...

https://github.com/DotNetOpenAuth/DotNetOpenAuth/wiki/Creating-an-openid-relying-party-%28programatically%29

Respuesta

0

1 - identificador reivindicada es lo que estás buscando. el problema es que google y similares usan 'identidad dirigida', lo que significa que el identificador reclamado estará vinculado al reino del que proviene. resultado neto para usted: el mismo usuario puede ingresar bajo múltiples identificadores reclamados diferentes.

2 y 3 no sé - supongo que se trata de alguna funcionalidad lista para usar que DNOA hace, pero no he jugado con ella.

4 - que no he encontrado. dnoa cubre todos los casos de los que debe preocuparse.

+0

No tengo ni idea de cómo hacerlo funcionar sin el proyecto de plantilla, que parece realmente abotagado. ¿Conoces un recurso? – Jason

+0

Sí, hay muchos documentos en el sitio de DNOA. ver la respuesta de andrew. – kolosy

5

No necesita utilizar la plantilla del proyecto. Puedes soltar el control OpenIDSelector en cualquier aplicación web y funcionará de la manera minimalista "dame el nombre de usuario". No hay dependencias SQL cualquiera que sea en la biblioteca DotNetOpenAuth. Simplemente maneje el evento OpenIdSelector.LoggedIn y obtendrá el nombre de usuario que desee.

La plantilla de proyecto, hinchada como puede parecer, supone que usted realmente tiene datos de usuario para almacenar, y que desea proporcionar un inicio de sesión razonable y una experiencia de administración de cuentas. También funciona en granjas web y entornos alojados en la nube. Si está empezando desde cero, esta es una gran manera de comenzar, aunque, naturalmente, algún código que se aplique se aplicará menos que otros, por lo que tiene la fuente, por lo que puede cambiarlo.

Sí, la plantilla del proyecto incluye una dependencia en una base de datos. Utiliza Linq-to-Entities para que cualquier base de datos con un proveedor Entities funcione, no solo SQL Server. Y viene con el esquema para esa base de datos integrada. Simplemente ejecute setup.aspx y debería crear la base de datos para usted en su instalación SQLExpress local.

+1

http://www.dotnetopenauth.net/developers/code-snippets/programmatic-openid-relying-party/ es lo que estaba buscando. Exactamente lo que necesitaba. Lamentablemente, no veo una forma obvia de encontrarlo desde la página de inicio de dotnetopenauth.net (lo encontré en mi 500ª búsqueda de Google tratando de encontrar la manera de hacerlo funcionar). Esto es lo que me imagino que sería en una sección de "Introducción". – Jason

+1

Buen comentario, CccTrash. Encontraré la manera de hacer que sea más reconocible. –