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

Ada*_*ney 5 asp.net openid

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

因此,新用户访问我的网站并想要创建一个帐户.这里出现了大量问题:

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

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

亚当

x0n*_*x0n 5

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

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

最后,您使用openid客户端库在您的网站上为您工作.他们注册为正常填写"全名",年龄,"等等(无论想要什么),但他们提供了一个openid url而不是用户名/密码.图书馆会检查他们是否真的拥有它.你必须相信这个库可以做然后,您将所有配置文件数据与该openid一起存储.完成.

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

合理?

-Oisin


Gar*_*Ray 5

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

OpenID的配方 - 启用您的网站

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