如何为asp.net mvc网站启用CORS?

时间:2014-07-11 10:28:44

标签: asp.net asp.net-mvc-4 cors

我想在我的asp.net mvc 4网站上启用CORS以执行操作。 对于web api,这是可能的 http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api mvc网站有类似的解决方案吗? 我也希望能够限制我想要的原始网站。 感谢

1 个答案:

答案 0 :(得分:1)

我认为您需要创建自定义授权,如下所示:

/// <summary>
/// Referrer Url Custom Authorize
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public class ReferrerUrlAuthorize : AuthorizeAttribute
{
    protected override bool IsAuthorized(System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        IList<string> webSitesAllowed = new List<string>() { "http://mywebsite.com", "http://customersite.com" };
        string urlReferrer = System.Web.HttpContext.Current.Request.UrlReferrer.AbsoluteUri;

        //checking if the referrer url exists in your list of sites allowed
        if (!webSitesAllowed.Contains(urlReferrer))
            return false;  //access denied
        return true;
    }
}

并且在您的控制器类中必须设置ReferrerUrlAuthorize

   [ReferrerUrlAuthorize]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Title = "Home Page";

        return View();
    }
}