【问题标题】:Missing WebApiConfig.cs in App_Start. Can I use Startup.cs?App_Start 中缺少 WebApiConfig.cs。我可以使用 Startup.cs 吗?
【发布时间】:2016-08-05 00:24:20
【问题描述】:

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

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

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

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

【问题讨论】:

  • 是的,您可以将其添加到Startup.cs。但是 WebApiConfig.cs 只是一个 public static class WebApiConfig ,其中包含您想要包含的任何方法。
  • @Jasen - 谢谢!如果我想添加WebApiConfig.cs 并仅添加上述代码,是否需要包含默认方法?我想我正在寻找在哪里添加上面提到的 CORS 代码?是否有需要调用的特定方法?另外,将此添加为答案,我会选择它,以便其他人可以看到它并且您可以获得信用。
  • 我已经在 Startup.cs 的 Configuration(IAppBuilder app)` 方法中有这一行 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);。我需要添加更多还是应该足够了?

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


【解决方案1】:

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

唯一重要的是您将设置应用到同一个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);

响应 cmets,如果您使用 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);,那么您将 CORS 标头设置在比 Web API 更高的级别,您根本不需要使用 EnableCorsAttribute。您的情况的主要区别在于,使用CorsAttribute,您将在 CORS 标头上进行精细分级配置(例如,您可以为每个 Action 方法设置不同的 CORS 标头)。

请记住在您的 Configuration 方法中将 app.UseCors 放在任何其他 Owin 中间件之前。

【讨论】:

  • 就我而言,我使用 OWIN 管道进行身份验证和令牌颁发。那么你是说我会在 Startup.cs 中的 public void Configuration(IAppBuilder app) 方法中添加 var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*"); config.EnableCors(cors); 以确保使用 HttpConfiguration 代替代码中列出的 config 对象?另外,如果 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 已经在 Configuration 方法中,是否需要它?
  • 在您发表评论后编辑了答案。
  • 绝妙的答案!感谢您的跟进!
猜你喜欢
  • 2022-07-15
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 2021-04-18
相关资源
最近更新 更多