2016-04-13 4 views
5

私はASP.NET Web Api v2 Webアプリケーションを持っており、CORSを有効にしようとしているので、別のサーバーのクライアントからAPIを呼び出すことができます。App_StartにWebApiConfig.csがありません。 Startup.csを使用できますか?

私はWebApiConfig.csではありませんされています...チュートリアルがhereに位置し、それがApp_Startフォルダ内のWebApiConfig.csファイルに次のコード行を追加することについて語っ

var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*"); 
config.EnableCors(cors); 

問題を、次のいApp_Startディレクトリ。ウェブアプリケーションのルートにあるStartup.csファイルで、ほとんどの設定とルーティングを行います。私は今までWebApiConfig.csファイルを使用して思い出していません。このコードはStartup.csに追加できますか?

+0

はい、「Startup.cs」に追加できます。しかし、 'WebApiConfig.cs'はあなたがそこに含めるメソッドを持つ' public static class WebApiConfig'です。 – Jasen

+0

@ジャセン - ありがとう! 'WebApiConfig.cs'を追加し、上記のコードだけを追加したいのであれば、デフォルトのメソッドを含める必要がありますか?私は上記のCORSコードをどこに追加するのか探していますか?呼び出す必要がある特定のメソッドがありますか?また、これを回答として追加して、他の人がそれを見ることができるように、私はそれを選択し、あなたは信用を得ることができます。 – webworm

+0

私は 'Startup.cs'の設定(IAppBuilderアプリケーション)メソッドに' app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);という行をすでに持っています。もっと追加する必要がありますか、これで十分でしょうか? – webworm

答えて

4

あなたの質問の答えは簡単です:はい、できます。

重要なことは、同じHttpConfigurationインスタンスに設定を適用してから、app.UseWebApi()拡張メソッドに渡すことだけです。

WebApiConfig.csは、Web API構成を他の構成ファイルと区別するために、デフォルトのWeb APIテンプレートによって作成されたボイラープレートファイルです。あなたがOwinだけを使うことを計画しているならば、あなたは単にそれを無視することができます。

[編集]サンプルコード、あなたのStartup.csConfigurationメソッド内:あなたはapp.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);を使用する場合は、コメントへの対応

var config = new HttpConfiguration(); 
var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*"); 
config.EnableCors(cors); 
app.UseWebApi(config); 

、その後、あなたはその後、Web APIをより高いレベルでCORSヘッダを設定すると、あなたが必要としませんEnableCorsAttributeをまったく使用しないでください。あなたのケースの主な違いは、CorsAttributeでは、CORSヘッダーに細かい段階の設定があることです(たとえば、すべてのアクションメソッドに異なるCORSヘッダーを設定できるなど)。

あなたのConfigurationメソッドでは、他のOwinミドルウェアの前にapp.UseCorsを置いてください。

+0

私の場合は、認証とトークン発行にOWINパイプラインを使用しています。それでは、私は 'var cors = new EnableCorsAttribute(" http:// localhost:5901 "、" * "、" * ");を追加すると言っていますか?config.EnableCors(cors); 'Startup.csの' public void Configuration(IAppBuilder app) 'メソッドに' config'オブジェクトの代わりにHttpConfigurationを使用していることを確認してください。また、既に 'Configuration'メソッドに' app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 'がありますか? – webworm

+0

あなたのコメントの後に答えを編集しました。 –

+0

すばらしい答え!フォローアップありがとう! – webworm

関連する問題