web-dev-qa-db-ja.com

Asp.Net MVC 5 Owin TwitterAuthが401例外をスロー

「個人アカウント」認証を使用して新しいWebプロジェクトを開始するときに作成されるデフォルトのプロジェクトに基づいて、Owinミドルウェアを使用してOAuth認証を設定しました。

少し調整しましたが、FacebookとGoogleはうまく機能していますが、[Twitter]ボタンをクリックしてチャレンジを発行すると、500httpの例外がスローされてエラーメッセージが表示されます。

応答ステータスコードは成功を示しません:401(無許可)。

これはTwitterでしか思いつかない。これが私の認証設定です:

// Just a configuration section that reads from the web.config
var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration");
app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration));
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

app.UseTwitterAuthentication(
    consumerKey: "XXX",
    consumerSecret: "XXX"
);

app.UseFacebookAuthentication(
    appId: "XXX",
    appSecret: "XXX"
);

app.UseGoogleAuthentication();

これは間違いなく500エラーであり、401エラーではなく、Twitterへの元の投稿チャレンジに合格しないことを確認しました。スタックトレースは、TwitterがGettainRequestToken呼び出しから成功コードを返さないことを示しているようです。

Stack Trace

何か案は?

39
MikeAtCodeSmart

Twitter Dev Appにアクセスして、Webサイトアドレスを追加する必要があります。私はそれがばかげているように見えることを知っていますが、これはあなたの問題を解決します。

  1. https://apps.Twitter.com/
  2. [設定]タブに移動します
  3. コールバックURLを任意のWebサイトに設定します。それが本物でなくても。

これで問題が解決するはずです。

71

パトリックが1年前に説明した方法で問題を解決しました。今日も同じ問題が発生しましたが、今回はコンピューターの日付/時刻設定が原因で問題が発生していることがわかりました。このコンピューターの日付/時刻は通常同期していないため、[日付と時刻の設定の変更]-> [インターネット時刻]タブに移動して、インターネット同期を有効にする必要がありました。

2
Lucho