2014-09-02 2 views
1

이것은 안전하지 않으며 가장 좋아하는 옵션은 아니지만 가능한 방법을 알고 싶습니다. 내가 cors 요청에서 호스트를 찾아서 Access Control-Allow-Origin : "domain.com"을 되돌릴 수있는 방법이 있습니까? 여기서 domain은 API를 사용하는 모든 도메인입니다. 이유는 본질적으로 와일드 카드 인 것과 함께 "자격 증명 사용"을하고 싶기 때문입니다.MVC 웹 API를 사용하면 도메인 요청을 찾을 수 있습니까

내 최종 사용자가 내 호스트 이름을 보내도록 할 수는 있지만 가능하다면 요청 자체에서 직접 가져옵니다.

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); 
    } 
} 

다음, ASP.NET 웹 API의 설정 코드에 필요한 :

답변

2

, 당신은 당신의 API에 CORS를 사용하도록 Microsoft.AspNet.WebApi.Cors를 사용하는 가정, 당신은 당신의 자신의 고르 정책 공급자를 정의 할 수 필요가 그것 Cors를 활성화 할 때이 정책을 전달하십시오 :

config.EnableCors(new MyApiCorsPolicy()); 
+0

감사합니다. –

관련 문제