ASP.NET - WebApi e Cross-origin resource sharing (CORS)
Cross-origin resource sharing (CORS) (ou compartilhamento de recursos cross-origem) é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente.1Esse tipo de acesso seria de outra forma negado pela same origin policy. CORS define um meio pelo qual um navegador e um servidor webpodem interagir para determinar se deve ou não requisições cross-origem2 . É um acordo que permite grande flexibilidade, mas é mais seguro que permitir todos as requisições desse tipo.
Quem trabalha no desenvolvimento de sistemas baseados em serviços (SOA) pode esbarrar por um problema que impede o uso de serviços criados serem consumidos por outras aplicações fora do mesmo domínio.
A minha situação é expor os Controllers, seus métodos da WebApi, para outros sistemas.
Caso 1: uma aplicação desenvolvida para Android que precisa consumir métodos da WebApi da sua aplicação Web.
Caso 2: um outro sistema Web hospedado em outro domínio precisa consumir métodos da WebApi da sua aplicação Web.
Existem diversas soluções que vi, algumas muito complexas, outras mais simples, mas a que vi funcionar e sem depender de mexer nas aplicações que chamam os métodos depende apenas da implementação de uma classe de atributo e o uso deste na sua aplicação.
Veja que o conceito continua o mesmo, injetar no header quem pode acessar ao recurso.
É necessário apenas decorar os métodos que serão expostos com a classe criada.
É uma solução que funciona e que pode servir de ponta pé inicial para outras, por exemplo, estender a classe EnableCorsAttribute para aceitar uma propriedade sobre qual domínio aceitar, assim podemos decorar expondo somente um domínio específico (ou vários), a solução apresentada expõe para todos (*).
Referência: http://pt.wikipedia.org/wiki/Cross-origin_resource_sharing
Comentários
Postar um comentário