【问题标题】:How to build an MVC site that has both OpenID and local users?如何构建一个同时拥有 OpenID 和本地用户的 MVC 站点?
【发布时间】:2012-06-07 17:26:08
【问题描述】:

我们有一个 MVC 网站,该网站将使用 DotNetOpenAuth 通过 OpenID 登录用户,我发现了 really helpful templateother more simple examples 这将帮助我在这方面开始。但是,我还没有完全弄清楚如果我的用户不想使用 OpenID,如何为他们提供创建帐户的方法。

我可以在这里看到两个选项,编写一些自定义代码以允许 OpenID 搭载标准会员提供程序。或者,让最终站点仅通过 DotNetOpenAuth 使用 OpenID,并为我的用户构建一个身份提供程序以进行注册。这样,网站只会看到 OpenID 用户,而不会知道有什么区别。

这些是我唯一的选择吗?我找不到任何关于建立我自己的身份提供者的东西,只是依赖方模板。我想我可以将 OpenID 放在默认的会员提供者之上,但这感觉好像我做错了,因为我应该能够站起来一个身份提供者。

那么,在我的情况下,通过创建本地帐户和通过 DotNetOpenAuth 支持 OpenID 的最佳方式是什么?

【问题讨论】:

  • 用户的个人资料也附有他们的信息。他们可以使用 openID 身份进行身份验证,或者使用您的用户名和密码选项登录您的系统(然后这会为您提供一个映射到配置文件表的身份).. 然后用户可以将多个身份添加到一个配置文件(google、twitter、facebook等)
  • 啊,是的,我忘记了帐户链接的东西!这也是对我们的要求。本地创建的用户必须能够将 OAuth 帐户链接到他们的本地帐户。也许我应该走简单的路线并使用默认的会员提供者的东西,然后在上面搭载 OAuth,就像这里 andrewblogs.com/blog/openid-for-asp-net-mvc-a-quick-setup
  • 思路是一样的;创建您的本地注册系统,但它不包含用户配置文件信息,它仅包含凭据和身份(id 值或其他内容),您具有到配置文件表的键映射。

标签: asp.net-mvc asp.net-membership openid dotnetopenauth


【解决方案1】:

设置您自己的身份提供者,让您的网站只使用 OAuth,这当然是一种选择,但并非易事。我不建议您设置身份提供商,除非您打算让您的客户使用它来登录其他网站。

另外请记住,大多数网站不使用 OAuth 进行身份验证(因为它不是身份验证协议)。 OpenID 更受欢迎。

您在问题中链接到的项目模板演示了允许用户通过多个 OpenID 提供程序登录,并且包括对链接用户帐户的支持

至于支持本地用户帐户,我建议你看看nerddinner.com后面的source code。我建议反对为 OpenID/OAuth 帐户使用 ASP.NET Membership 提供程序,因为该界面不太适合,但人们已经让它工作,所以如果你愿意,你也可以。 p>

【讨论】:

  • 啊,我实际上并没有意识到 OAuth 和 OpenID 之间存在差异。我曾怀疑支持身份提供者并非易事,但没有什么可以支持的,感谢您提供的信息!我将立即深入研究 nerddinner,我没有意识到他们将其更新为使用这种形式的身份验证。感谢安德鲁的所有帮助和所有其他 DNOA 帖子!
  • 另外,我更新了问题。我的意思不是 OpenID 也不是 OAuth,抱歉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 2014-06-02
  • 2023-03-11
  • 2016-09-21
  • 2012-01-07
  • 2013-11-14
相关资源
最近更新 更多