Pregunta

Me encanta el enfoque de StackExhchange / Stackoverflow a la integración de OpenID.

A mi entender, el proceso es algo como esto:

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

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

Sé StackExchange se basa en ASP.NET MVC, pero no estoy seguro de si se utiliza el estándar ASP.NET modelo de acreditación 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 estándar de ASP.NET MVC y luego asociar el ID, o hay un proceso separado?
  • ¿cómo permitir StackExchange representa estar asociado con una cuenta existente proveedor de OpenID adicional?

Gracias de antemano por cualquier ayuda que puede dar!

¿Fue útil?

Solución

El sitios utilizan la DotNetOpenAuth biblioteca (anteriormente conocido como biblioteca DotNetOpenId).

Es, básicamente, necesita una mesa y una mesa User User_OpenID con una relación de uno a muchos. Scot Hanselman tiene un buen artículo básica o intente una más en profundidad visión general

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top