首页 > Web开发 > 详细

netcore 跨源资源共享CORS

时间:2021-06-03 17:05:26      阅读:12      评论:0      收藏:0      [点我收藏+]

CORS(Cross-Origin Resource Sharing)是由 W3C 指定的标准,其目的是帮助在各个站点间的资源共享,可以允许配置中的请求源执行允许/拒绝的动作。
要引用程序集 Microsoft.AspNetCore.Cors。

默认开启CORS

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ......
    app.UseCors(builder => builder.SetIsOriginAllowed(_ => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials());
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

UseCors要放置在UseAuthorization之前。

路由+命名策略


public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy(name: "myPolicy",
            builder =>
            {
                builder.WithOrigins("AllowSpecificOrigins", "AllowSpecificOrigins2");
            });
    });
    services.AddControllers();
    ......
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ......
    app.UseCors();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGet("/echo", context => context.Response.WriteAsync("echo")).RequireCors("myPolicy");
        endpoints.MapControllers().RequireCors("myPolicy");
    });
}

属性启用CORS

最精确地控制跨域请求,可以使用[EnableCors("myPolicy")]与命名策略一同使用,不能定义默认策略和Endpoint路由。

netcore 跨源资源共享CORS

原文:https://www.cnblogs.com/wesson2019-blog/p/14845560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!