0

この動作は、執筆時点でDotNetOpenAuthのmasterブランチとv4.0ブランチで異なります。パブリッククライアントでリソース所有者のパスワード資格付与タイプを使用しています。マスターブランチは期待どおりにトークンを発行します。v4.0ブランチは、要求を無効と見なします。実行フローはAccessRequestBindingElement.ProcessIncomingMessage、次のコードが実行されるメソッドで終了します。

// Check that the client secret is correct.
var client = this.AuthorizationServer.GetClientOrThrow(accessRequest.ClientIdentifier);
string secret = client.Secret;
ErrorUtilities.VerifyProtocol(!string.IsNullOrEmpty(secret), Protocol.unauthorized_client); // an empty secret is not allowed for client authenticated calls.

クライアントはパブリックであるため、コードはエラーを生成します。ただし、上記のコードのコメントは、付与がクライアント認証されており、リソース所有者のパスワード資格情報ではないことを意味します。私はこれを間違って呼んでいますか?

マスターブランチでは、同じ呼び出しが機能します。

4

1 に答える 1

1

v4.0はシナリオをサポートしていませんでしたが、マスターブランチ(v4.1で予定)は現在サポートしています。DotNetOpenAuthが、リソース所有者のパスワード付与タイプを使用してパブリッククライアントを引き続きサポートするかどうかは、ユーザーが承認されたクライアントを確認したい場合に、承認サーバーが妥当なユーザーエクスペリエンスでトークンを取り消す機能に問題を引き起こすため、まだ決定されていません。

于 2012-05-03T13:35:49.337 に答える