Come fare siti StackExchange associare gli account utente e login OpenID?
-
10-10-2019 - |
Domanda
Mi piace l'approccio di StackExhchange / StackOverflow a integrare OpenID.
A quanto mi risulta, il processo più o meno così:
- Se un utente si iscrive con un provider OpenID (cioè Google), StackOverflow (o sito simile) crea un account per l'utente e associa l'OpenID con tale account.
- Un utente esistente può associare più account OpenID con il proprio account / StackExchange.
mi piacerebbe emulare questo comportamento perché io non l'ho visto quasi come user-friendly su altri siti.
Lo so StackExchange è costruito su ASP.NET MVC, ma non sono sicuro se si utilizza lo standard ASP.NET credentialing modello e poi aggiunge il provider OpenID in una tabella DB separato o quello.
Quindi, le mie domande sono:
- In che modo StackExchange creare questi account? Fanno Creare un utente nel provider standard di ASP.NET MVC e quindi associare l'ID, o c'è un processo separato?
- come fa StackExchange consentire agli account di essere associato ad un account esistente provider OpenID supplementare?
Grazie in anticipo per qualsiasi aiuto si può dare!
Soluzione
Lo StackExchange siti utilizzano DotNetOpenAuth libreria (precedentemente conosciuto come biblioteca DotNetOpenId).
È fondamentalmente bisogno di un tavolo e un tavolo User
User_OpenID
con una relazione uno-a-molti. Scot Hanselman ha un buon articolo di base o prova un più in profondità panoramica