asp.net - App_Start 中缺少 WebApiConfig.cs。我可以使用 Startup.cs 吗?

标签 asp.net cors asp.net-web-api2

我有一个 ASP.NET Web Api v2 Web 应用程序,我正在尝试启用 CORS,以便我可以从不同服务器上的客户端调用 API。

我正在关注位于 here 的教程并谈到将以下代码行添加到 WebApiConfig.cs App_Start 中的文件文件夹 ...

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

问题是我没有 WebApiConfig.cs在 App_Start 目录中。我在 Startup.cs 中完成了大部分配置和路由Web 应用程序根目录中的文件。我不记得曾经使用过 WebApiConfig.cs文件。这个代码我可以添加到Startup.cs吗? ?

最佳答案

你的问题的答案很简单:是的,你可以。

唯一重要的是您将设置应用于相同的 HttpConfiguration然后您将传递给 app.UseWebApi() 的实例扩展方法。
WebApiConfig.cs只是由默认 Web API 模板创建的样板文件,用于将 Web API 配置与其他配置文件分开。如果您打算只使用 Owin,那么您可以简单地忽略它。

[编辑] 示例代码,在您的 Startup.csConfiguration方法:

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

回复评论,如果您使用 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);那么您将在比 Web API 更高的级别设置 CORS header ,并且您将不需要使用 EnableCorsAttribute根本。您的情况的主要区别在于 CorsAttribute您将对 CORS header 进行精分割级配置(例如,您可以为每个 Action 方法设置不同的 CORS header )。

只要记得放 app.UseCors在您的 Configuration 中的任何其他 Owin 中间件之前方法。

关于asp.net - App_Start 中缺少 WebApiConfig.cs。我可以使用 Startup.cs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606324/

相关文章:

c# - 如何将 Owin 上下文传递给被注入(inject) Api Controller 的 Repo

asp.net - 我可以使用 IoC 容器来创建 ASP.NET webforms 页面和控件吗?

c# - 通过用户控件调用页面点击事件

javascript - Canvas 视频 CORS

java - 为什么 AngularJS 应用程序不能在不同的服务器上使用 REST 服务?

unit-testing - 单元测试 Web API - 如何获取身份验证 token

azure - 此请求的授权已被拒绝 - Azure Active Directory - 有哪些日志可用?

asp.net - 浏览器不设置cookie

c# - 以编程方式访问 GridView 列并进行操作

java - 即使启用 CORS,POST 也会被阻止