【发布时间】:2018-09-28 01:41:29
【问题描述】:
我正在尝试使用 CORS 阻止对我的资源的跨域访问。我也尝试过WebApi.Cors 和自定义ActionFilter。但我仍然能够从不允许的域访问数据。
我的ActionFilter 代码如下
public class AllowCrossSiteAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Credentials", "true");
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "https://example.com");
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "*");
base.OnActionExecuting(filterContext);
}
}
我的控制器
[HttpGet]
[AllowCrossSite]
public ActionResult Index(string username)
{
//return json data
}
这些标头存在于响应标头中,但是为什么请求没有阻止来自其他域的请求,我做错了什么?请帮忙
【问题讨论】:
标签: c# asp.net asp.net-mvc cors actionfilterattribute