Asp.net mvc 使用MVCWebAPI,我可以通过cors请求找到域吗
所以这是不安全的,不是我最喜欢的选择,但我只是想知道这有多可能。是否有一种方法可以在cors请求中找到主机,以便我可以发回访问控制允许源:“domain.com”,其中domain是使用api的任何域。原因是我希望能够“使用凭证”,本质上是一个通配符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
我可以让我的最终用户向我发送他们的主机名,但如果可能的话,我宁愿从请求本身获取它。这是可能的,假设您使用在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());