Asp.net mvc 使用MVCWebAPI,我可以通过cors请求找到域吗

Asp.net mvc 使用MVCWebAPI,我可以通过cors请求找到域吗,asp.net-mvc,cors,asp.net-web-api,hostname,Asp.net Mvc,Cors,Asp.net Web Api,Hostname,所以这是不安全的,不是我最喜欢的选择,但我只是想知道这有多可能。是否有一种方法可以在cors请求中找到主机,以便我可以发回访问控制允许源:“domain.com”,其中domain是使用api的任何域。原因是我希望能够“使用凭证”,本质上是一个通配符 我可以让我的最终用户向我发送他们的主机名,但如果可能的话,我宁愿从请求本身获取它。这是可能的,假设您使用在API上启用CORS,您需要定义自己的CORS策略提供程序: public class MyApiCorsPolicy : Attribute

所以这是不安全的,不是我最喜欢的选择,但我只是想知道这有多可能。是否有一种方法可以在cors请求中找到主机,以便我可以发回访问控制允许源:“domain.com”,其中domain是使用api的任何域。原因是我希望能够“使用凭证”,本质上是一个通配符


我可以让我的最终用户向我发送他们的主机名,但如果可能的话,我宁愿从请求本身获取它。

这是可能的,假设您使用在API上启用CORS,您需要定义自己的CORS策略提供程序:

public class MyApiCorsPolicy : Attribute, ICorsPolicyProvider
{
  private System.Web.Cors.CorsPolicy _policy;

  public MyApiCorsPolicy ()
  {
     // Create a CORS policy.
     _policy = new System.Web.Cors.CorsPolicy
     {
        AllowAnyMethod = true,
        AllowAnyHeader = true,
        SupportsCredentials = true
     };
  }

  public Task<System.Web.Cors.CorsPolicy> GetCorsPolicyAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
  {
     // Add the Request origin to the response.
     _policy.Origins.Add(request.GetCorsRequestContext().Origin);
     return Task.FromResult<System.Web.Cors.CorsPolicy>(_policy);
  }
}
config.EnableCors(new MyApiCorsPolicy());