5

FacebookでログインするためにOAuthWebSecurityを使用していますが、localhostで動作しています。ただし、ライブサーバーにデプロイすると、次のエラーメッセージが表示されます。

リモート サーバーがエラーを返しました: (400) 不正な要求。

  • Facebook でドメインの詳細が正しいことを確認しました。
  • サンドボックス モードは無効です。
  • Windows ファイアウォールを無効にしましたが、それでも同じエラーが発生します。
  • Facebook からの応答は、ライブ環境でもローカルホスト環境でも同じ形式です。
  • ライブサーバーの日付と時刻は正しいです。

ホストファイルをライブドメインに変更することもローカルでテストしました-それでもローカルで動作します。

スタック トレースは次のとおりです。

[WebException: The remote server returned an error: (400) Bad Request.]
System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) +3291120
System.Net.WebClient.DownloadString(Uri address) +207
DotNetOpenAuth.AspNet.Clients.FacebookClient.QueryAccessToken(Uri returnUrl, String authorizationCode) +293
DotNetOpenAuth.AspNet.Clients.OAuth2Client.VerifyAuthentication(HttpContextBase context, Uri returnPageUrl) +167
DotNetOpenAuth.AspNet.OpenAuthSecurityManager.VerifyAuthentication(String returnUrl) +502
Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.VerifyAuthenticationCore(HttpContextBase context, String returnUrl) +231

助言がありますか?

4

2 に答える 2

1

これは古いものですが、MVC 4 に統合されている dotnetopenoath を使用して Facebook のログインから 400 エラーが発生し、サポートされなくなったため機能していないと考えて暴走しました。私の特定のケース(アプリの秘密の証明設定)の問題を指摘した例外をキャッチしてログに記録しました:

catch (WebException exception)
{
    using (WebResponse response = exception.Response)
    {
        HttpWebResponse httpResponse = (HttpWebResponse) response;
        m_log.Debug("Error code: " + httpResponse.StatusCode);
        using (Stream data = response.GetResponseStream())
        {
            if (data != null)
            {
                using (var reader = new StreamReader(data))
                {
                    string text = reader.ReadToEnd();
                    m_log.Debug(text);
                }
             }
         }
    }
}
于 2014-08-09T01:44:13.867 に答える