web-dev-qa-db-ja.com

Angular 6を.NET Core 2で構成して、任意のホストからCORSを許可する方法は?

私は単純なAngularアプリを4200でローカルに実行しています。netコアを使用して5000でローカルに実行するWeb APIでテストしています。startup.csにはCORSが正しく構成されており、私が信じるものすべてを許可しています。

ConfigureServicesセクションでは、次のようにしています:services.AddCors();

構成セクションでは、私が持っています:

app.UseCors(options => options.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());

しかし、私が自分のwebapiを打つと、ブラウザでこれを取得します。

origin ' http:// localhost:42 'がCORSポリシーによってブロックされました:プリフライトリクエストへの応答がアクセス制御チェックに合格しません:プリフライトリクエストのリダイレクトは許可されていません。

私は他の回答を調べましたが、それらはすべて、私が変更せずに試したこのバリエーションまたは同様のバリエーションを持っているようです。他に何をする必要があるかわからない?

6
seanmt13

私は同じ問題で走りましたが、私の場合はwindowsauthentificationでした。

@RandyDaddisが正しい方向を教えてくれました。認証が設定されている場合、「*」は使用できません。

しかし、これはホールの問題を解決しません(そして私にとっては '*'は良いオプションではありません)。

WindowsAuthenticationonlyからmixed mode(anonymousAuthentication preflight が資格情報を送信していなかったためです。

これはすでに asp によって議論された問題でした。

重要なのは、これをConfigureServicesstartup.csに追加することですすべてのコントローラーがまだ許可ポリシーの下にあることを確認する関数:

 ...
 services.AddAuthentication(IISDefaults.AuthenticationScheme);
 services.AddMvc(options =>
        {
            var policy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
            options.Filters.Add(new AuthorizeFilter(policy));
        })...
0
Flo