5

Me encanta el enfoque de StackExhchange/StackOverflow para integrar OpenID.¿Cómo asocian los sitios de StackExchange las cuentas de usuario y los inicios de sesión de OpenID?

Según tengo entendido, el proceso es algo como esto:

  • Si un usuario se registra con un proveedor de OpenID (es decir, Google), Stackoverflow (o sitio similar) crea una cuenta para el usuario y asociados el OpenID con esa cuenta.
  • Un usuario existente puede asociar múltiples cuentas OpenID con su cuenta StackExchange.

Me encantaría emular este comportamiento porque no lo he visto tan fácil de usar en otros sitios.

Sé que StackExchange se basa en ASP.NET MVC, pero no estoy seguro de si utiliza el modelo de credencialización de ASP.NET estándar y luego agrega el proveedor de OpenID en una tabla de base de datos separada o qué.

Por lo tanto, mis preguntas son:

  • ¿Cómo StackExchange crear estas cuentas? ¿Crean un usuario en el proveedor de ASP.NET MVC estándar y luego asocian el ID, o hay un proceso separado?
  • ¿Cómo permite StackExchange que se asocien cuentas adicionales de proveedores de OpenID con una cuenta existente?

¡Gracias de antemano por cualquier ayuda que pueda dar!

+1

Esto pertenece a Meta. – chrisaycock

Respuesta

6

StackExchange sites use la biblioteca DotNetOpenAuth (anteriormente conocida como biblioteca DotNetOpenId).

Básicamente se necesita una tabla User y una tabla User_OpenID con una relación uno a muchos. Scot Hanselman tiene un buen artículo básico o prueba un more in depth overview

+0

Exactamente lo que estaba buscando; No estaba seguro de si había algo más que eso o no. Perfecto, gracias por la ayuda rápida. – SeanKilleen

Cuestiones relacionadas