2016-05-24 15 views
1

私のチームは、.netコアにWeb APIを構築しています。すべてのクライアントを認証するためにトークン認証を使用します。トークンはAzure ADの形式で提供されます。JWT認証

私たちは、匿名アクセスを許可する場合にのみ動作しStartup.cs

app.UseJwtBearerAuthentication(options => { 
      options.AutomaticAuthenticate = true; 
      options.AutomaticChallenge = true;    
      options.Authority = "https://login.windows.net/1da3434a9-e5a6-4e9e-80c3-aca8ed37cb03";    
      options.Audience = "https://test.onmicrosoft.com/test_api"; 
      options.RequireHttpsMetadata = false; 
     }); 

     services.AddCors(options => 
     { 
      // Define one or more CORS policies 
      options.AddPolicy("AllowAll", 
       builder => 
       { 
        builder.AllowAnyOrigin() 
         .AllowAnyHeader() 
         .AllowAnyMethod() 
         .AllowCredentials(); 
       }); 
     }); 

でこの1をこのコードを置きます。私はトークンをチェックし、トークンは有効です。しかし、私たちがコントローラを打つたびに、エラーが発生します。 corsを有効にしても

+0

CORSコードを表示できますか? –

+0

@ダニー、私の投稿を更新し、CORSコードを追加 –

+0

ありがとう。あなたは正確なエラーメッセージを表示できますか? –

答えて

0

ミドルウェアを追加する順序は問題になりません!アプリケーション全体のためのCORSを有効にするには

UseCors拡張メソッドを使用して、要求パイプラインを するCORSミドルウェアを追加します。 CORSミドルウェアは、アプリケーション内の任意の定義済みエンドポイント(例えば、 UseMvcへの呼び出しの前に、クロスオリジン要求をサポートしたい)を進める必要があることに注意してください。

あなたはAllowCredentials & AllowAnyOriginを組み合わせることはできません401

0

を経由してユーザーをリダイレクトする可能性があるservices.AddCors上記のほとんどすべてを置く必要があります。特定の起源を選ぶと、あなたの要求はうまくいくでしょう。