Ativando o CORS através dos atributos Web.config vs WebApiConfig e Controller

Parece haver duas maneiras funcionalmente diferentes para ativar o compartilhamento de solicitações de origem cruzada na Web API 2.

Um é importarSystem.Web.Http.Cors, decorar um controlador com oEnableCors atribuir e escreverconfig.EnableCors() no WebApiConfig:

[EnableCors(origins: "http://111.111.111.111", headers: "*", methods: "*")]
public class GenericController : ApiController
{
    // etc.

O outro émodificar o Web.config:

<system.webServer>
     <httpProtocol>
         <customHeaders>
            <add name="Access-Control-Allow-Origin" value="http://111.111.111.111" />
            <add name="Access-Control-Allow-Methods" value="*" />
            <add name="Access-Control-Allow-Headers" value="*" />

Existe uma diferença funcional entre essas duas abordagens diferentes? Qual deles está correto - eles não realizam a mesma coisa? Se os dois métodos forem usados para ativar o CORS, as coisas vão explodir?

questionAnswers(1)

yourAnswerToTheQuestion