如何在我的新ASP.NET网站中使用OpenID?

时间:2009-04-10 18:24:05

标签: asp.net openid

我一定是个傻瓜,因为我在ASP.NET上的OpenID上看过的所有文章都让我对这个问题感到困惑。我很确定我理解这里涉及的概念,我对事情的后端看起来有点模糊。

所以新用户来到我的网站并希望创建一个帐户。这里出现了大量问题:

  • 这是让他选择他将用于登录的openID提供商的第一步吗?
  • 我是否在系统上提示他输入用户名?
  • 每次他返回时我是否需要将他绑定到同一个openID提供商,或者每次都可以选择新的提供商?
  • 这里的数据库是什么样的?我是否在表格中有他的用户名并且链接到openID提供商?
  • 如果用户没有OpenID帐户怎么办?我应该允许他在我的最终创建一个传统帐户,然后将自己作为OpenID提供商公开吗?

我在这里缺少什么?我通常都非常聪明,但对于我的开发人员智能而言,这个区域对于超人来说就像是氪星石。提前谢谢!

亚当

2 个答案:

答案 0 :(得分:5)

老兄,你并不孤单。除了设计它的人之外,OpenID会让所有人感到困惑,即便如此,我也不确定它是否会混淆它们,因为有多个OpenID提供程序,它们之间存在轻微的不兼容性,具体取决于您使用的库。

想象一下,用户本身就是一个sql“table”(该表包含他的“凭据”),并且您拥有一个特定于您拥有的网站的个人资料数据表。 OpenID url是一个“外键”,用于“连接”这两个表。您必须向自己证明他在接受之前确实拥有该OpenID网址(或将其与您的私人资料数据相关联)。您实际上是“离岸外包”您网站的身份验证部分。

最终,您使用openid客户端库在您的网站上为您完成工作。他们注册为正常填写“全名”,年龄,“等等(无论想要什么),但他们提供了一个openid url而不是用户名/密码。图书馆负责验证他们真的拥有它。必须相信这个库才能做到这一点。然后你用那个openid存储你的所有个人资料数据。完成。

虽然您可以提供自己的openid提供程序,但此时此功能并不值得。那里已经有很多了。你可以做的是提供一个传统的用户名/密码INSTEAD of openid。 openid的想法是你向提供商注册ONCE,然后证明你拥有该网址到任何想用它来识别你的网站(而不是用户名/密码)。

有意义吗?

-Oisin

答案 1 :(得分:5)

此页面是在网站上实施OpenId的分步教程。我相信它会回答你关于添加它的机制的所有问题。

A Recipe for OpenID-Enabling Your Site

如果用户没有OpenId,我只允许他们“正常”注册,存储他们的凭据供本地使用。除非您有商业案例,否则无需增加成为OpenID提供商的额外复杂性。