C#面试题更新 2026-08-05

请阐述在 ASP.NET Core 中配置跨域请求支持的具体步骤及注意事项。

风险判断技术原理ASP.NET CoreC#

考察说明

考察对 ASP.NET Core 跨域配置的理解与实际操作能力

回答思路

  1. 【回答框架 1】跨域是由于浏览器同源策略限制,不同源(协议、域名、端口任一不同)的请求会被拦截。在 ASP.NET Core 中,通过配置 CORS(跨源资源共享)中间件来允许特定来源访问。
  2. 【回答框架 2】首先在服务容器中调用 AddCors 方法,配置 CORS 策略,例如设置允许的来源、方法、请求头等,可通过策略名称或默认策略进行设置。
  3. 【回答框架 3】然后在请求管道中通过 UseCors 方法启用中间件,注意顺序,一般放在 UseRouting 之后、UseAuthorization 之前。
  4. 【回答框架 4】对于控制器或方法级别,可以应用 EnableCors 特性指定策略,也可以全局应用。
  5. 【回答框架 5】还需处理预检请求(OPTIONS),确保服务器正确响应,对于复杂请求(如携带自定义头或非简单方法),浏览器会先发送 OPTIONS 请求,需确保 CORS 配置包含 AllowHeaders 和 AllowMethods 相关内容。
  6. 【关键点 1】CORS 配置涉及服务注册 (AddCors) 和中间件启用 (UseCors)。
  7. 【关键点 2】可通过命名策略或默认策略配置允许的来源、方法、请求头。
  8. 【关键点 3】UseCors 应放置在 UseRouting 之后和 UseAuthorization 之前。
  9. 【关键点 4】可使用 EnableCors 特性对控制器或方法进行细粒度控制。
  10. 【关键点 5】需要正确处理预检请求,必要时配置 AllowCredentials 与 AllowAnyOrigin 不能同时使用。
  11. 【易错点 1】不能将 AllowAnyOrigin 与 AllowCredentials 同时使用,否则会导致配置失败。
  12. 【易错点 2】忽略预检请求,导致 OPTIONS 请求返回 405 或 401。
  13. 【易错点 3】中间件顺序错误,如将 UseCors 放在 UseRouting 之前,可能导致请求处理异常。