문제

I love StackExhchange / StackOverflow's approach to integrating OpenID.

As I understand it, the process goes something like this:

  • If a user signs up with an OpenID provider (i.e. Google), StackOverflow (or similar site) creates an account for the user and associates the OpenID with that account.
  • An existing user can associate multiple OpenID accounts with his/her StackExchange account.

I would love to emulate this behavior because I haven't seen it nearly as user-friendly on other sites.

I know StackExchange is built on ASP.NET MVC, but am not sure whether it uses the standard ASP.NET credentialing model and then adds the OpenID provider in a separate DB table or what.

So, my questions are:

  • How does StackExchange create these accounts? Do they Create a user in the standard ASP.NET MVC provider and then associate the ID, or is there a separate process?
  • how does StackExchange allow additional OpenID provider accounts to be associated with an existing account?

Thanks in advance for any help you can give!

도움이 되었습니까?

해결책

The StackExchange sites use the DotNetOpenAuth library (previously known as DotNetOpenId library).

You basically need a User table and a User_OpenID table with a one-to-many relationship. Scot Hanselman has a good basic article or try a more in depth overview

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top