签名请求无效。 (无效的签名。)在IIS上运行两个应用程序时

时间:2011-11-16 21:30:07

标签: facebook-c#-sdk

我已经尝试过绝对的一切......这是我的情景。

我在IIS服务器上运行了五个应用程序,每个应用程序都在其自己的文件夹中,包含正确的web.config,包含带有AppID,Secret等的FacebookSettings。

每个应用都使用相同的授权逻辑

 var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me", "email" } };

            if (auth.Authorize())
            {

                if (mode == "run")
                {
                    ShowWelcomeContent();
                }
                else if (mode == "runadmin")
                {
                    ShowEditContent();
                }

            }

当我从Facebook点击第一个应用程序时,这一切都很有效。

一旦我尝试点击第二个应用程序,它总是抛出相同的#34;无效的签名请求"错误。如果我更改了某些内容并按单独的顺序重试并访问它们,那么第一个应用程序(无论哪个)始终有效,第二个到第五个应用程序总是失败。

2 个答案:

答案 0 :(得分:0)

这是因为它使用AppSecret在内部验证signed_request以获得额外的安全性。 因此,请确保为这两个应用程序正确设置app seceret。

您可能想要参考这篇文章,了解如何将它用于多个应用程序。 http://facebook.stackoverflow.com/questions/4931240/multiple-facebook-apps-under-one-web-application/4936703#4936703

答案 1 :(得分:0)

1)确保你的配置值对于这两个应用都是正确的。(web.config)...我知道你说两个应用程序都可以工作它只能在第一次工作时确保你在配置中有不同的值。

2)尝试清除浏览器Cookie。

如果你还没有看到这个:

Facebook API - Invalid signed request. (Invalid signature.)