StackExchange站点如何关联用户帐户和OpenID登录?

时间:2010-12-09 05:33:30

标签: asp.net-mvc openid user-accounts openid-provider account-management

我喜欢StackExhchange / StackOverflow集成OpenID的方法。

据我所知,这个过程是这样的:

  • 如果用户使用OpenID提供商(即Google)注册,则StackOverflow(或类似网站)会为该用户创建一个帐户,并将OpenID与该帐户相关联。
  • 现有用户可以将多个OpenID帐户与他/她的StackExchange帐户相关联。

我很想模仿这种行为,因为我在其他网站上看不到它几乎是用户友好的。

我知道StackExchange是基于ASP.NET MVC构建的,但我不确定它是否使用标准的ASP.NET凭据模型,然后将OpenID提供程序添加到单独的数据库表中或者是什么。

所以,我的问题是:

  • StackExchange如何创建这些帐户?他们是否在标准ASP.NET MVC提供程序中创建用户,然后关联该ID,或者是否有单独的进程?
  • StackExchange如何允许其他OpenID提供商帐户与现有帐户相关联?

预先感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:6)

StackExchange sites use DotNetOpenAuth库(以前称为DotNetOpenId库)。

您基本上需要一个User表和一个具有一对多关系的User_OpenID表。 Scot Hanselman有一篇很好的基础文章或尝试more in depth overview