0

我正在尝试在我现在正在制作的 ASP.Net 2 网站上设置 OpenID,并使用 DotNetOpenAuth。但似乎我遇到了一堵无论我尝试多少事情都不会让步的砖墙。

在尝试使用 Google 登录时,我收到“对 ' https://www.google.com/accounts/o8/ud ' 的 Web 请求失败。” 作为回应。

奇怪的是,谷歌正确显示了登录屏幕,要求我确认是否要授予网站访问权限。

此外,来自 Google 的登录数据已正确附加到查询字符串中。

那么为什么 OpenID.GetResponse 不能为我获取正确的数据呢?

我可以自己从查询字符串中获取登录数据。但这是个好主意吗?

感谢您的回复!

编辑:只是想在这里澄清行为是在本地主机上。

4

1 回答 1

1

如果您的 Web 服务器位于防火墙后面或需要代理来发出出站 HTTP 请求,请确保您的 web.config 文件包含一个片段以使用系统默认代理(或专门命名的代理)。

<system.net>
    <defaultProxy enabled="true" />
</system.net>

,不要只是自己从查询字符串中检索登录数据。必须对该字符串进行大量验证,以避免任何人仅通过自己编写查询字符串就能够以任何人身份登录。事实上,听起来 DotNetOpenAuth 在验证过程中失败了,所以在解决出站 HTTP 请求问题之前,您也不太可能自己完成。

这里棘手的部分是为什么 DNOA 能够将您发送到 Google,但后来无法联系 Google 以验证肯定的断言。如果我上面显示的内容不起作用,您可以启用日志记录并将日志添加到您的问题吗

于 2010-01-28T13:40:41.880 回答