2017-11-27 13 views
2

.netコアを使用してswagger UIに特定のヘッダーを追加する必要があります。このようなヘッダーを含める方法はありますか?swaggerにProxy-Authorizationヘッダーを追加

すでに試した

  • IOperationFilterを実装:

    public void Apply(Operation operation, OperationFilterContext context) 
    { 
        if (operation.Parameters == null) 
         operation.Parameters = new List<IParameter>(); 
    
        if (operation.Parameters.All(p => p.Name != "Proxy-Authorization")) 
        { 
         operation.Parameters.Add(new NonBodyParameter 
         { 
          Name = "Proxy-Authorization", 
          In = "header", 
          Description = "Proxy-Authorization token", 
          Required = true, 
          Type = "string" 
         }); 
        } 
    } 
    
  • 追加セキュリティ定義は:

    options.AddSecurityDefinition("Proxy-Authorization", new ApiKeyScheme() 
    { 
        In = "header", 
        Description = "Please insert Proxy Authorization Secret into field", 
        Name = "Proxy-Authorization", 
        Type = "apiKey" 
    }); 
    

の両方が動作しませんでした。ヘッダー名を変更すると、すべて正常に動作しますが、この特定のヘッダーはコールから消去されます。

これまでにこの問題を解決しましたか?これを解決するには?

+0

闊歩を可能にしながら、あなたの操作フィルタの実装を追加しましたか? – gldraphael

+0

コメントありがとうございます。スワッガーが有効になり、操作フィルターも同様に、承認ヘッダーがうまく機能しています。私は認可1と一緒にプロキシ認可を追加したいと思います。 私がswashbuckleで遊んでいる間、私はプレフィックス 'proxy-'を持つヘッダーを追加する可能性がないことを知りました。 –

+0

GitHubに関する最小限のプロジェクトはありますか?私はあなたの問題のトラブルシューティングをしたいと思います... – HelderSepu

答えて

2

より:https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name

禁止ヘッダ名は、プログラムを変更することはできませんHTTPヘッダー名です。具体的には、HTTP要求ヘッダ名である。

...

禁断のヘッダ名はProxy-またはSEC-で始まる、またはこれらのいずれかで構成されています

  • のAccept-文字セットを
  • のAccept-エンコーディング
  • アクセス制御-Request-Headers
  • アクセス制御要求方式
  • 接続
  • のContent-Length
  • クッキー
  • Cookie2
  • DNT
  • ホスト
  • がキープアライブ
  • 起源
  • Proxy-
  • SEC-
  • を期待します
  • リファラー
  • TE
  • トレーラー
  • 転送エンコード
  • アップグレード
  • 経由
+0

githubの問題に関する回答を見ました。ありがとう。 –

関連する問題