我有一个ASP.NET Web Api v2 Web应用程序,我正在尝试启用CORS,因此我可以从另一台服务器上的客户端调用API。
我正在关注位于here的教程,并讨论如何将以下代码行添加到WebApiConfig.cs
文件夹中的App_Start
文件中...
var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*");
config.EnableCors(cors);
问题是我在App_Start目录中没有WebApiConfig.cs
。我在Web应用程序根目录的Startup.cs
文件中完成了大部分配置和路由。我不记得曾经使用WebApiConfig.cs
文件。我可以将此代码添加到Startup.cs
吗?
答案 0 :(得分:5)
你的问题的答案很简单:是的,你可以。
唯一重要的是,您将设置应用于同一个HttpConfiguration
实例,然后传递给app.UseWebApi()
扩展方法。
WebApiConfig.cs
只是由默认Web API模板创建的样板文件,用于将Web API配置与其他配置文件分开。如果你打算只使用Owin,那么你可以忽略它。
[编辑]示例代码,位于Startup.cs
Configuration
方法内:
var config = new HttpConfiguration();
var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*");
config.EnableCors(cors);
app.UseWebApi(config);
回复评论,如果您使用app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
,那么您将在更高级别设置CORS标题,然后再使用Web API,您根本不需要使用EnableCorsAttribute
。您的情况的主要区别在于,使用CorsAttribute
,您将在CORS标头上进行精细评级配置(例如,您可以为每个Action方法设置不同的CORS标头)。
请记住将app.UseCors
放在Configuration
方法中的任何其他Owin中间件之前。