15 Nisan 2016 Cuma

Çıldırtan CORS belası

"Evet çıldırdım... CORS'tan çıldırdım. Delice, hayvan gibi, ellerimle deliler gibi kod yazarak" :))))

CORS belası tamam bir güvenlik unsuru ama development yaparken sıçırtıcı derecede uğraştırıyor. Ama en azından asp.net mvc için bir çözüm buldum. CORS'u sunucudan response header'ına bir ekleme yaparak çözebiliyoruz.

Projenizin herhangi bir yerine AllowCrossSite.cs adında bir class oluşturun.
İçi de şöyle birşey olacak...

public class AllowCrossSiteAttribute : System.Web.Mvc.ActionFilterAttribute
{
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
            base.OnActionExecuting(filterContext);
        }
}

Bu filtre üzerine yazıldığı her action'ın header'ına Access-Control-Allow-Origin = "*" yapıyor.

Cross origin enable etmek istediğiniz action üzerine attribute'u ekleyebilirsiniz. Şu şekilde...

[AllowCrossSite]
public ActionResult AdBanners()
{
      return View();
}

Hadi kolay gelsin.

Hiç yorum yok:

Yorum Gönder