Как сайты StackExchange связывают учетные записи пользователей и логины OpenID?

Мне нравится подход StackExhchange / StackOverflow к интеграции OpenID.

Насколько я понимаю, процесс выглядит примерно так:

  • Если пользователь регистрируется у поставщика OpenID (например, Google), StackOverflow (или аналогичный сайт) создает учетную запись для пользователя и связывает OpenID с этой учетной записью.
  • Существующий пользователь может связать несколько учетных записей OpenID с его / ее учетной записью StackExchange.

Я хотел бы подражать этому поведению, потому что я не видел его почти таким удобным для пользователя на других сайтах.

Я знаю, что StackExchange построен на ASP.NET MVC, но я не уверен, использует ли он стандартную модель учетных данных ASP.NET, а затем добавляет поставщик OpenID в отдельную таблицу БД или что-то в этом роде.

Итак, мои вопросы:

  • Как StackExchange создает эти учетные записи? Создают ли они пользователя в стандартном провайдере ASP.NET MVC, а затем связывают его идентификатор, или существует отдельный процесс?
  • как StackExchange позволяет связывать дополнительные учетные записи поставщика OpenID с существующей учетной записью?

Спасибо за заранее за любую помощь, которую вы можете оказать!

5
задан Brian Webster 29 December 2011 в 22:39
поделиться