0

Client.ProcessUserAuthorization();oauth サーバーからコードを取得した後の 2 回目の呼び出しで、例外が発生します。 Error occurred while sending a direct message or getting the response.

これは、log4net で取得したログ ファイルの最後の部分です。完全なログは、この要点に記録されています: https://gist.github.com/tonyeung/5513769

2013-05-03 15:14:41,292 (GMT-5) [10] DEBUG DotNetOpenAuth.Messaging.Channel - Sending AccessTokenAuthorizationCodeRequestC request.
2013-05-03 15:14:41,393 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - HTTP POST http://localhost:38828/OAuth/Token
2013-05-03 15:14:41,450 (GMT-5) [10] ERROR DotNetOpenAuth.Http - http://localhost:38828/OAuth/Token returned 400 BadRequest: Bad Request
2013-05-03 15:14:41,450 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - WebException from http://localhost:38828/OAuth/Token: 
{"error":"invalid_request"}

ソリューションをhttps://github.com/tonyeung/dotnetopenauth
にアップロードしました 。エントリ ポイントは、クライアント プロジェクトのホーム コントローラーの about アクションにあります。
ソリューションは、最新の nuget dnoa パッケージである VS2012 にあります。Nuget の復元がオンになっています。

ライブラリの仕組みを理解するために必要な部分を実装していることに注意してください。このエラーは、どこかで実装が欠落していることが原因であると確信していますが、それが何であるかわかりませんか?

4

1 に答える 1

0

そのため、認可サーバーで IsAuthorizationValid と CreateAccessToken の実装が欠落していたようです。私が入れたスタブのgithubリポジトリをチェックして、エラーを解消してください。

編集:トラップしなかったデータベース検証エラーもありました。したがって、基本的にサーバー側でエラーが発生すると、このようなメッセージが表示されます。

EDIT2: ページの URL に URL エンコードされていない値が含まれていると、無効なリクエストがスローされるという問題もありました。私の場合、ログイン ページに returnUrl のクエリ文字列パラメーターがあり、/Home に設定していましたが、気に入らなかったため、次のようにする必要がありました: %2FHome

于 2013-05-06T14:32:09.983 に答える