Partager via


处理在将联合身份验证与 ACS 和 Facebook 一起使用时出现的空白响应页面

原文发布于 2011 年 7 月 12 日(星期二)

我在使用各种联合身份验证时遇到过几次这样的情况。这些情况总是与以下两种情况相关:将 Facebook 用作登录的 oAuth 源或将 Azure 的 AppFabric ACS 用作联合身份验证提供程序。常见的行为是:通过浏览器以互动方式来执行操作;或通过对 ACS 调用 POST 以编程方式来执行操作。无论上述哪种情况,您都会收到错误响应,但是错误通常没有给出明确的解释。例如,使用 Facebook 的 oAuth 功能时,您会跳转到其登录网站,输入凭据,然后跳回到您的应用程序。即使出现问题,在多数情况下,浏览器只会显示您获得了 400 响应,并告诉您服务器出现了错误。就是这样。同样,采用编程方式对 ACS 执行 POST 操作时,出现问题后,您通常会收到 400 类型响应,它会告诉您“页面未找到”或类似的信息。这样的行为对您有用吗?没用吧!

让人伤心的是,我发现查看这些页面的最佳方式就是使用 Fiddler (www.fiddler2.com(该链接可能指向英文页面))。您会发现,Fiddler 响应中显示的信息要比浏览器显示的信息详细很多。例如,对于某个 ACS 问题,我在 Fiddler 中看到,响应中包含了说明 POST 消息的格式不正确这样的详细信息。没错,这样的信息比让您不知道如何开始处理问题的“页面未找到”有用多了。对于 Facebook,我们发现,在 Fiddler 中响应实际上已告诉您,您在跳回无效的或不可靠的 URI。没错,这比只为您提供 400 错误并告诉您请求失败有用多了。

这正是我要说的,当您在遇到这些难题时,可以打开 Fiddler,查看响应的详细信息,尝试获取有关发生的问题的实际有用的详细信息。 

这是一篇本地化的博客文章。请访问 Troubleshooting Blank Response Pages When Using Federation with ACS and Facebook 查看原文