【问题标题】:DotNetOpenAuth Sample OpenID Error: No OpenID endpoint foundDotNetOpenAuth 示例 OpenID 错误:未找到 OpenID 端点
【发布时间】:2013-02-05 18:06:23
【问题描述】:

我正在使用 DotNetOpenAuth,当我打电话时:

this.openIdRelyingParty.CreateRequest(userSuppliedIdentifier, realm, returnToUrl);

我收到上面的错误...我正在使用我自己的 OpenID 提供程序,我刚刚在 localhost 中运行。有谁知道那可能是什么?内部异常说序列不包含任何项目或类似的东西。

我在想也许我将我的 RP 指向了我运行本地主机的错误位置。将 RP 指向 XRDS 文件是否正确?

谢谢 尼尔

【问题讨论】:

    标签: c# openid dotnetopenauth


    【解决方案1】:

    userSuppliedIdentifier 通常应该是 OpenID 提供者网站的 URL,而不是直接在 XRDS 文件中。提供者的主页应该检测到对 XRDS 文档的调用并做出适当的响应。 OpenIdProvider[Mvc] 示例演示了这一点。

    由于您在 localhost 上托管,一个很可能的问题是 RP 拒绝连接到 localhost 端点(默认情况下是安全的,因为当您在生产中时,这并不是一个真正有效的场景)。因此,当您在本地开发时,您必须在 web.config 文件中将 localhost 列入白名单。请参阅 OpenIdRelyingParty[WebForms/Mvc] 示例的 web.config 文件了解如何执行此操作。

    【讨论】:

    • 您好安德鲁,感谢您的回复。我现在已将 OpenIDProviderMVC 添加为我的 OP.. 但问题仍然存在。你知道的实际端点是什么?我试过了,我认为项目中的每个 aspx 文件:(.. 白名单也只需要设置 OP?还是必须在 RP 上设置?
    • 白名单需要在 RP 的 web.config 文件中。 OP 不需要它(除非您希望 RP 发现工作)。您在 RP 中键入的 URL 就是 OP 的根 URL(托管 OP 站点的localhost:port。)
    • 感谢安德鲁的建议!不过,我在 RP 和 OP 之间没有直接联系。我有一个与 OpenID 提供者通信的中间 STS。那么我应该在 RP 白名单或 STS 白名单上有白名单(我在 STS 上没有白名单)
    • 应该出现在调用OpenIdRelyingParty.CreateRequest的任何网站上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多