如何将其他Openid提供程序添加到OpenId RelyingParty?

时间:2010-01-11 09:53:00

标签: asp.net-mvc dotnetopenauth

我正在尝试在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 ID端点”。

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

2 个答案:

答案 0 :(得分:2)

它可以“自动”为myopenid.com和许多其他人工作,因为它们是真正的OpenID提供者。

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

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

答案 1 :(得分:1)

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