Asp.net mvc 如何将其他开放ID提供程序添加到OpenIdRelyingParty?

Asp.net mvc 如何将其他开放ID提供程序添加到OpenIdRelyingParty?,asp.net-mvc,dotnetopenauth,Asp.net Mvc,Dotnetopenauth,我正在尝试在ASP.NETMVC上实现一个依赖方(我正在处理的网站)。我正在使用当前版本3.3.1 使用附带的MVC示例,我可以看到OpenIdRelyingParty类可以根据用户指定的ID自动识别并重定向到一些开放ID提供商,如myopenid.com和Yahoo 如何让OpenIdRelyingParty对Windows Live/Hotmail和Google Open ID执行相同的操作 更新 我的问题可能是我不清楚什么是开放ID,下面是我正在做的,也许有人可以解释为什么我的期望是错误的

我正在尝试在ASP.NETMVC上实现一个依赖方(我正在处理的网站)。我正在使用当前版本3.3.1

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

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

更新

我的问题可能是我不清楚什么是开放ID,下面是我正在做的,也许有人可以解释为什么我的期望是错误的:

  • 当我输入雅虎电子邮件地址作为开放ID时,它会重定向到雅虎登录页面。酷

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

  • 但当我对Windows Live电子邮件地址、Hotmail地址或Gmail地址执行相同操作时,会出现一个错误“找不到开放ID端点”


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

假设OpenID提供程序是一个完整的OpenID提供程序,那么用户在OpenID字段中输入的URL就足以重定向(例如)。您不需要做任何特殊的事情。

它对myopenid.com和许多其他网站“自动”起作用,因为它们是实际的OpenID提供者

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


Gmail和Live ID电子邮件和URL不起作用的原因是Live ID还不是OpenID提供商。不幸的是,Gmail的OP标识符不仅仅是“Gmail.com”。相反,这是严重的。这是一个很长的URL。但是如果你输入(或者只是
tinyurl.com/googop
),你就可以使用你的Gmail(或任何谷歌)帐户登录了。

我已经为我的问题添加了一个更新。。。可能是因为我对开放ID不太清楚。这是我第一次尝试使用它。谢谢,这就解释了这一点。不过,Windows Live确实实现了开放ID。我知道这一点,因为我一直在试验RPX服务(),他们确实支持Windows Live作为开放ID提供商。我创建了一个Live Services AD Federation帐户(),并向我的RPX帐户提供了AppID和密钥,所有这些都通过RPX工作。我想如果我使用的是DotNetOpenAuth,我只需要弄清楚liveopenid的URL是什么,以及如何传递密钥(我将不得不提出一个单独的问题),liveid没有实现OpenID。RPX提供了一个Windows Live ID登录按钮,这是真的,但它下面没有使用OpenID。事实上,RPX提供了几个按钮(Facebook连接、Live ID、Twitter),它们不是OpenID按钮。RPX将它们全部包装起来,使它们看起来像是相同的技术,但实际上并非如此。微软去年推出了一个OpenID提供商的预览版,但他们已经关闭了它,还没有发布任何新的产品。如果你需要更多的说服力,我是微软的员工,如果这在这里有任何影响的话。:)