【问题标题】:Restricting origins with Cors and Owin token authentication使用 Cors 和 Owin 令牌身份验证限制来源
【发布时间】:2018-10-04 16:50:18
【问题描述】:

我已经成功地启用了 Cors,并且我的客户端应用程序使用 AJAX 与我的 Web API 应用程序通信。问题是它现在对任何主机开放。我在 Startup.Auth.cs 中添加了以下行:

 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

我使用的是标准的 WebApi 方法进行 cors,但在发出令牌身份验证时遇到了问题。

我的问题是如何使用这种方法限制来源?

【问题讨论】:

  • ConfigureServices 方法中,您可以添加类似services.AddCors(options => { options.AddPolicty("NameOfPolicy", builder => bulider.WithOrigins(<<Name of Host>>))}); 的CORS 策略,然后您必须在app.UseCors 方法中使用相同的策略名称。

标签: c# asp.net-web-api cors


【解决方案1】:

您可以使用CorsPolicyBuilder Class 限制来源

   app.UseCors(builder =>
        builder.WithOrigins("http://localhost", "https://localhost"));

【讨论】:

    【解决方案2】:

    定义一个或多个命名的 CORS 策略,然后在运行时按名称选择策略

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            options.AddPolicy("AllowSpecificOrigin",
                builder => builder.WithOrigins("http://example.com"));
        });
    }
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        ...
        // Shows UseCors with named policy.
        app.UseCors("AllowSpecificOrigin");
       ...
    }
    

    您可以在here 阅读如何定义 CORS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 2016-02-21
      • 2013-11-25
      • 1970-01-01
      • 2019-09-04
      • 2015-06-04
      • 2014-07-06
      • 2013-09-20
      相关资源
      最近更新 更多