1

我使用 DotNetOpenAuth 库编写了一个应用程序,它允许用户针对多个 OpenID 提供程序进行身份验证。除了 AOL 之外,所有这些都可以正常工作,AOL 出于某种原因会创建一个超过 2200 个字符长的返回 URL,这个长度超过了大多数浏览器的最大 URL 长度 (2048)。

有没有人经历过这个?有没有办法限制传递给提供者的参数(特别是特定于 dnoa 的参数)的数量?

真正的问题是“openid.return_to”参数,它是整个 URL 的副本,但这是 OpenID 规范的问题,因此不容易纠正。

谢谢你的帮助,加勒特

4

2 回答 2

2

当前部署的 AOL OpenID 提供程序不支持 HTTP POST 重定向方法。一个新版本的 AOL OpenID 提供程序也支持 OpenID 2.0 将在接下来的几周内部署。但是,与此同时,应该可以使用 SREG 并且只询问您需要的属性。我已经使用http://test-id.org和 SREG 测试成功地测试了 SREG 路径。

于 2010-02-26T13:20:25.510 回答
1

您可以将自己的 return_to 值传递给 DotNetOpenAuth。如果你不传入需要签名的回调参数,你不应该看到太多的 dnoa.-prefixed 参数被附加到它上面。如果您看到的超出您认为合理的范围,请将日志附加到您的问题中,我们可以对其进行评估。

简而言之,在这种情况下,AOL 可能应该使用 HTTP POST 而不是 301 重定向。

于 2010-02-26T02:33:28.290 回答