1

我正在尝试在 ASP.NET MVC上使用DotNetOpenAuth实现依赖方(我正在开发的网站) 。我正在使用当前版本 3.3.1。

使用包含的 MVC 示例,我可以看到 OpenIdRelyingParty 类可以根据用户指定的 ID 自动识别并重定向到一些开放 ID 提供者,例如 myopenid.com 和 Yahoo。

如何让 OpenIdRelyingParty 对 Windows Live/Hotmail 和 Google Open ID 执行相同的操作?

更新

我的问题可能是我不清楚 Open ID 是什么,这就是我正在做的事情,也许有人可以解释为什么我的期望是错误的:

  • 当我输入一个 Yahoo 电子邮件地址作为 Open ID 时,它会重定向到 Yahoo 登录页面。凉爽的。

  • 当我输入我唯一的 myopenid.com 名称时,它会重定向到 myopenid.com 登录页面。凉爽的。

  • 但是,当我对 Windows Live 电子邮件地址、Hotmail 地址或 Gmail 地址执行相同操作时,我收到错误消息“未找到 Open ID 端点”。

如果 Open ID 必须是 URL,那么为什么使用 Yahoo 电子邮件地址有效?我认为这是因为 OpenIdRelyingParty 类具有将常用电子邮件地址映射到提供商 URL 的一些智能……我在这里遗漏了什么吗?

4

2 回答 2

2

它适用于 myopenid.com 和许多其他网站,因为它们是实际的 OpenID 提供者。

电子邮件地址不是 OpenID 标识符,但由于 OpenID 标识符解析规则,如果电子邮件地址的域部分是“OP 标识符” ,则电子邮件地址恰好可以工作。“yahoo.com”本身就是一个 OpenID 标识符,因此任何以 @yahoo.com 结尾的电子邮件地址都可以使用,这就是您所看到的。

Gmail 和 Live ID 电子邮件和 URL 不起作用的原因是 Live ID 还不是 OpenID 提供商。不幸的是,Gmail 的 OP 标识符不仅仅是“gmail.com”。相反,它是https://www.google.com/accounts/o8/id 认真的。这是一个很长的网址。但是,如果您输入(或仅输入tinyurl.com/googop),您将使用您的 Gmail(或任何 Google)帐户登录。

于 2010-01-11T14:55:01.460 回答
1

假设 OpenID 提供者是一个完整的 OpenID 提供者,您的用户在 OpenID 字段中输入的 URL 足以进行重定向(例如http://blowdart.openid.example )。你不应该做任何特别的事情。

于 2010-01-11T09:58:09.667 回答