5

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

据我了解,这个过程是这样的:

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

我很想效仿这种行为,因为我在其他网站上几乎没有看到它对用户友好。

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

所以,我的问题是:

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

提前感谢您提供的任何帮助!

4

1 回答 1

6

StackExchange站点使用DotNetOpenAuth(以前称为 DotNetOpenId 库)。

您基本上需要一个User表和一个User_OpenID具有一对多关系的表。Scot Hanselman有一篇很好的基础文章或尝试更深入的概述

于 2010-12-09T09:24:52.927 回答