APIコールからファイルをダウンロードしたいと考えています。議論のために、それは自動的に生成されたPDFファイルだとしましょう。IdentityServerで保護されたファイルをダウンロードする方法
私は2つの問題を抱えて:
- アンカータグは、リクエストにのみ
XHR
缶をAuthorization
ヘッダを追加することはできませんが。 XHR
リクエストはファイルをダウンロードできません。
私の解決方法は、[AllowAnonymous]
エンドポイントを持つAPIを書き込むことです。このAPIには、access_token
がパラメータとして使用されます。次に、アクセストークンを手作業で検証し、401を返すか、PDFをストリームします。
が、これが最善の解決策であれば、どのように私はAPI内access_token
を検証しない、これより良い解決策はありますか?
クライアント認証情報OAuthフローを使用できます。ステップ1、identityserver3でクライアントとしてWeb Apiを作成します。ステップ2では、クライアントIDとシークレットを使用してIDサーバーからアクセストークンを取得します。ステップ3、Web APIへのリクエストで、 "ベアラ"トークンを持つ認証ヘッダーを追加します。ここを見て:http://www.developerhandbook.com/c-sharp/create-restful-api-authentication-using-web-api-jwt/ – TejSoft
だから、問題はIdSvrよりジャバスクリプト/ XHRの問題の詳細ですか?生成されたファイルを返すAPIがあり、通常の方法で保護されたエンドポイントです。そのエンドポイントからの戻り値は 'FileContentResult'です。 AJAX呼び出しでそのエンドポイントを呼び出そうとすると、通常の[javascript-download-a-file](https://stackoverflow.com/questions/16086162/handle-file-download-from-ajax-post)のフープをジャンプします。 – Mashton